def load_captured_io(captured_io): try: return CapturedIO(captured_io.get('stdout', None), captured_io.get('stderr', None), outputs=captured_io.get('outputs', []), ) except TypeError: return CapturedIO(captured_io.get('stdout', None), captured_io.get('stderr', None), )
def __enter__(self): from IPython.core.getipython import get_ipython from IPython.core.displaypub import CapturingDisplayPublisher self.sys_stdout = sys.stdout self.sys_stderr = sys.stderr if self.display: self.shell = get_ipython() if self.shell is None: self.save_display_pub = None self.display = False stdout = stderr = outputs = None if self.stdout: #stdout = sys.stdout = StringIO() stdout = sys.stdout = myStringIO(out=IPython.utils.io.stdout) if self.stderr: #stderr = sys.stderr = StringIO() stderr = sys.stderr = myStringIO(out=self.sys_stderr) if self.display: self.save_display_pub = self.shell.display_pub self.shell.display_pub = CapturingDisplayPublisher() outputs = self.shell.display_pub.outputs return CapturedIO(stdout, stderr, outputs)