From 7366f52cbe50b88d8d282b994ccda35159d75bc0 2012-08-21 18:18:09 From: Takafumi Arakaki <aka.tkf@gmail.com> Date: 2012-08-21 18:18:09 Subject: [PATCH] Encode to byte before base64.decodestring --- diff --git a/IPython/frontend/terminal/console/interactiveshell.py b/IPython/frontend/terminal/console/interactiveshell.py index a7f3798..04bf7dd 100644 --- a/IPython/frontend/terminal/console/interactiveshell.py +++ b/IPython/frontend/terminal/console/interactiveshell.py @@ -265,12 +265,12 @@ class ZMQTerminalInteractiveShell(TerminalInteractiveShell): if mime not in ('image/png', 'image/jpeg'): return import PIL - raw = base64.decodestring(data[mime]) + raw = base64.decodestring(data[mime].encode('ascii')) img = PIL.Image.open(BytesIO(raw)) img.show() def handle_image_stream(self, data, mime): - raw = base64.decodestring(data[mime]) + raw = base64.decodestring(data[mime].encode('ascii')) imageformat = self._imagemime[mime] fmt = dict(format=imageformat) args = [s.format(**fmt) for s in self.stream_image_handler] @@ -281,7 +281,7 @@ class ZMQTerminalInteractiveShell(TerminalInteractiveShell): proc.communicate(raw) def handle_image_tempfile(self, data, mime): - raw = base64.decodestring(data[mime]) + raw = base64.decodestring(data[mime].encode('ascii')) imageformat = self._imagemime[mime] filename = 'tmp.{0}'.format(imageformat) with nested(NamedFileInTemporaryDirectory(filename), diff --git a/IPython/frontend/terminal/console/tests/test_image_handler.py b/IPython/frontend/terminal/console/tests/test_image_handler.py index e00aafe..1dfe9db 100644 --- a/IPython/frontend/terminal/console/tests/test_image_handler.py +++ b/IPython/frontend/terminal/console/tests/test_image_handler.py @@ -30,7 +30,7 @@ class ZMQTerminalInteractiveShellTestCase(unittest.TestCase): self.shell = ZMQTerminalInteractiveShell(kernel_manager=km) self.raw = b'dummy data' self.mime = 'image/png' - self.data = {self.mime: base64.encodestring(self.raw)} + self.data = {self.mime: base64.encodestring(self.raw).decode('ascii')} def test_no_call_by_default(self): def raise_if_called(*args, **kwds):