Skip to content

Commit fd8fc3a

Browse files
committed
Handle invalid file object when passed explicitly
1 parent 1736526 commit fd8fc3a

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

Lib/argparse.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@
8686
]
8787

8888

89+
import io as _io
8990
import os as _os
9091
import re as _re
9192
import sys as _sys
@@ -2885,12 +2886,13 @@ def print_help(self, file=None):
28852886
self._print_message(help_text, file)
28862887

28872888
def _print_message(self, message, file=None):
2888-
if message:
2889-
file = file or _sys.stderr
2890-
try:
2891-
file.write(message)
2892-
except (AttributeError, OSError):
2893-
pass
2889+
if file is None:
2890+
if _sys.stderr is not None:
2891+
_sys.stderr.write(message)
2892+
else:
2893+
if not isinstance(file, _io.IOBase):
2894+
raise ValueError(f"invalid file object {file}")
2895+
file.write(message)
28942896

28952897
def _get_theme(self, file=None):
28962898
# If self.color is False, _colorize is not imported

0 commit comments

Comments
 (0)