From 9a21220ecefa008b32fbfc91297f62cf1a34c74e Mon Sep 17 00:00:00 2001 From: Doug Blank Date: Wed, 10 Sep 2014 09:28:39 -0400 Subject: [PATCH] magickernel: don't crash on attempt to print from %kernel code... doesn't actually show; not sure why not --- jupyter_kernel/magickernel.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/jupyter_kernel/magickernel.py b/jupyter_kernel/magickernel.py index 33bbe771..f6e3a0e9 100644 --- a/jupyter_kernel/magickernel.py +++ b/jupyter_kernel/magickernel.py @@ -29,6 +29,12 @@ def __init__(self, *args, **kwargs): # FIXME: take care of input/output, eg StringIO # make work without a session self.log = logging.Logger(".magickernel") + else: + # Write has already been set + try: + sys.stdout.write = self.Write + except: + pass # Can't change stdout self.sticky_magics = {} self._i = None self._ii = None @@ -41,10 +47,6 @@ def __init__(self, *args, **kwargs): self.plot_settings = dict(backend='inline', format=None, size=None) self.hist_file = get_history_file(self) self.reload_magics() - try: - sys.stdout.write = self.Write - except: - pass # Can't change stdout # provide a way to get the current instance import jupyter_kernel jupyter_kernel.JUPYTER_INSTANCE = self @@ -56,6 +58,7 @@ def subkernel(cls, kernel): FIXME: monkeypatch to Make this kernel class be a subkernel to another. """ cls.log = kernel.log + cls.session = kernel.session cls.iopub_socket = kernel.iopub_socket cls._parent_header = kernel._parent_header