Skip to content

Commit a8cf99a

Browse files
committed
Pass the file instead of looking up sys.stderr again.
1 parent 9a1d88e commit a8cf99a

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

Lib/traceback.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@ def print_exception(exc, /, value=_sentinel, tb=_sentinel, limit=None, \
137137
BUILTIN_EXCEPTION_LIMIT = object()
138138

139139

140-
def _print_exception_bltin(exc, /):
141-
file = sys.stderr if sys.stderr is not None else sys.__stderr__
140+
def _print_exception_bltin(exc, file=None, /):
141+
file = file or sys.stderr if sys.stderr is not None else sys.__stderr__
142142
colorize = _colorize.can_colorize(file=file)
143143
return print_exception(exc, limit=BUILTIN_EXCEPTION_LIMIT, file=file, colorize=colorize)
144144

Python/errors.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1489,7 +1489,8 @@ write_unraisable_exc_file(PyThreadState *tstate, PyObject *exc_type,
14891489
PyObject *print_exception_fn = PyImport_ImportModuleAttrString("traceback",
14901490
"_print_exception_bltin");
14911491
if (print_exception_fn != NULL && PyCallable_Check(print_exception_fn)) {
1492-
PyObject *result = PyObject_CallOneArg(print_exception_fn, exc_value);
1492+
PyObject *args[2] = {exc_value, file};
1493+
PyObject *result = PyObject_Vectorcall(print_exception_fn, args, 2, NULL);
14931494
Py_DECREF(print_exception_fn);
14941495
Py_XDECREF(result);
14951496
if (result != NULL) {

0 commit comments

Comments
 (0)