From 7edcaedc533df437101fd0d40a9c857c7671277a Mon Sep 17 00:00:00 2001 From: Xiao Yuan Date: Tue, 16 Jun 2026 19:41:52 +0300 Subject: [PATCH] gh-118158: Fix missing newline in py_compile CLI error output (#149008) Restore trailing newline in error messages from `python -m py_compile`, lost when `main()` was refactored to use argparse. --- Lib/py_compile.py | 4 ++-- Lib/test/test_py_compile.py | 6 ++++++ .../Library/2026-04-26-11-25-38.gh-issue-118158.xIy05H.rst | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2026-04-26-11-25-38.gh-issue-118158.xIy05H.rst diff --git a/Lib/py_compile.py b/Lib/py_compile.py index 7ca479141e01..b22446e2f098 100644 --- a/Lib/py_compile.py +++ b/Lib/py_compile.py @@ -202,12 +202,12 @@ def main(): if args.quiet: parser.exit(1) else: - parser.exit(1, error.msg) + parser.exit(1, error.msg + '\n') except OSError as error: if args.quiet: parser.exit(1) else: - parser.exit(1, str(error)) + parser.exit(1, str(error) + '\n') if __name__ == "__main__": diff --git a/Lib/test/test_py_compile.py b/Lib/test/test_py_compile.py index da2d630d7ace..09113e983fcd 100644 --- a/Lib/test/test_py_compile.py +++ b/Lib/test/test_py_compile.py @@ -327,6 +327,12 @@ class PyCompileCLITestCase(unittest.TestCase): self.assertEqual(stdout, b'') self.assertEqual(stderr, b'') + def test_bad_syntax_stderr_ends_with_newline(self): + with open(self.source_path, 'w') as file: + file.write(' print("hello world")\n') + rc, stdout, stderr = self.pycompilecmd_failure(self.source_path) + self.assertTrue(stderr.endswith(b'\n')) + def test_file_not_exists(self): should_not_exists = os.path.join(os.path.dirname(__file__), 'should_not_exists.py') rc, stdout, stderr = self.pycompilecmd_failure(self.source_path, should_not_exists) diff --git a/Misc/NEWS.d/next/Library/2026-04-26-11-25-38.gh-issue-118158.xIy05H.rst b/Misc/NEWS.d/next/Library/2026-04-26-11-25-38.gh-issue-118158.xIy05H.rst new file mode 100644 index 000000000000..bd22871c1c0c --- /dev/null +++ b/Misc/NEWS.d/next/Library/2026-04-26-11-25-38.gh-issue-118158.xIy05H.rst @@ -0,0 +1 @@ +Ensure py_compile CLI error messages end with a newline. Contributed by Xiao Yuan. -- 2.47.3