Skip to content

Commit 1c7f626

Browse files
fix: protect stdout/stderr restoration in InProcessKernel._redirected_io (ipython#1122)
1 parent 3455c29 commit 1c7f626

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

ipykernel/inprocess/ipkernel.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,11 @@ def _input_request(self, prompt, ident, parent, password=False):
121121
def _redirected_io(self):
122122
"""Temporarily redirect IO to the kernel."""
123123
sys_stdout, sys_stderr = sys.stdout, sys.stderr
124-
sys.stdout, sys.stderr = self.stdout, self.stderr
125-
yield
126-
sys.stdout, sys.stderr = sys_stdout, sys_stderr
124+
try:
125+
sys.stdout, sys.stderr = self.stdout, self.stderr
126+
yield
127+
finally:
128+
sys.stdout, sys.stderr = sys_stdout, sys_stderr
127129

128130
# ------ Trait change handlers --------------------------------------------
129131

0 commit comments

Comments
 (0)