From 42f54d1f9244784fec99e0610aa05a5051e594bb Mon Sep 17 00:00:00 2001 From: Oleg Iarygin Date: Sun, 7 May 2023 02:53:48 +0400 Subject: gh-101640: Make argparse _print_message catch any write error (#101802) * In particular, don't exit when trying to print to stderr = None. * Add tests Co-authored-by: Terry Jan Reedy --- Lib/argparse.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'Lib/argparse.py') diff --git a/Lib/argparse.py b/Lib/argparse.py index a819d2650e..68089a5c1e 100644 --- a/Lib/argparse.py +++ b/Lib/argparse.py @@ -2605,9 +2605,11 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): def _print_message(self, message, file=None): if message: - if file is None: - file = _sys.stderr - file.write(message) + file = file or _sys.stderr + try: + file.write(message) + except (AttributeError, OSError): + pass # =============== # Exiting methods -- cgit v1.2.1