From 71644c28df3d6ab81097495672e8efb8b0dfdcdc 2014-12-05 01:48:48
From: Thomas Kluyver <takowl@gmail.com>
Date: 2014-12-05 01:48:48
Subject: [PATCH] Use messaging methods on kernel client instead of channel objects

---

diff --git a/IPython/kernel/inprocess/tests/test_kernel.py b/IPython/kernel/inprocess/tests/test_kernel.py
index e32b72e..4069270 100644
--- a/IPython/kernel/inprocess/tests/test_kernel.py
+++ b/IPython/kernel/inprocess/tests/test_kernel.py
@@ -61,7 +61,7 @@ class InProcessKernelTestCase(unittest.TestCase):
 
         kc = BlockingInProcessKernelClient(kernel=kernel)
         kernel.frontends.append(kc)
-        kc.shell_channel.execute('print("bar")')
+        kc.execute('print("bar")')
         msg = get_stream_message(kc)
         self.assertEqual(msg['content']['text'], 'bar\n')
 
diff --git a/IPython/qt/console/frontend_widget.py b/IPython/qt/console/frontend_widget.py
index 0c0ea0a..604c61b 100644
--- a/IPython/qt/console/frontend_widget.py
+++ b/IPython/qt/console/frontend_widget.py
@@ -463,7 +463,7 @@ class FrontendWidget(HistoryConsoleWidget, BaseFrontendMixin):
         self.kernel_client.iopub_channel.flush()
 
         def callback(line):
-            self.kernel_client.stdin_channel.input(line)
+            self.kernel_client.input(line)
         if self._reading:
             self.log.debug("Got second input request, assuming first was interrupted.")
             self._reading = False
diff --git a/IPython/qt/console/history_console_widget.py b/IPython/qt/console/history_console_widget.py
index d2c5354..e4af363 100644
--- a/IPython/qt/console/history_console_widget.py
+++ b/IPython/qt/console/history_console_widget.py
@@ -225,7 +225,7 @@ class HistoryConsoleWidget(ConsoleWidget):
         return self._history[-n:]
 
     def _request_update_session_history_length(self):
-        msg_id = self.kernel_client.shell_channel.execute('',
+        msg_id = self.kernel_client.execute('',
             silent=True,
             user_expressions={
                 'hlen':'len(get_ipython().history_manager.input_hist_raw)',
diff --git a/IPython/qt/console/ipython_widget.py b/IPython/qt/console/ipython_widget.py
index 6f3da94..c9cbe8c 100644
--- a/IPython/qt/console/ipython_widget.py
+++ b/IPython/qt/console/ipython_widget.py
@@ -203,7 +203,7 @@ class IPythonWidget(FrontendWidget):
                 self._retrying_history_request = True
                 # wait out the kernel's queue flush, which is currently timed at 0.1s
                 time.sleep(0.25)
-                self.kernel_client.shell_channel.history(hist_access_type='tail',n=1000)
+                self.kernel_client.history(hist_access_type='tail',n=1000)
             else:
                 self._retrying_history_request = False
             return
@@ -296,12 +296,11 @@ class IPythonWidget(FrontendWidget):
         # The reply will trigger %guiref load provided language=='python'
         self.kernel_client.kernel_info()
 
-        self.kernel_client.shell_channel.history(hist_access_type='tail',
-                                                  n=1000)
+        self.kernel_client.history(hist_access_type='tail', n=1000)
     
     def _load_guiref_magic(self):
         """Load %guiref magic."""
-        self.kernel_client.shell_channel.execute('\n'.join([
+        self.kernel_client.execute('\n'.join([
             "try:",
             "    _usage",
             "except:",
@@ -385,7 +384,7 @@ class IPythonWidget(FrontendWidget):
         """
         # If a number was not specified, make a prompt number request.
         if number is None:
-            msg_id = self.kernel_client.shell_channel.execute('', silent=True)
+            msg_id = self.kernel_client.execute('', silent=True)
             info = self._ExecutionRequest(msg_id, 'prompt')
             self._request_info['execute'][msg_id] = info
             return
diff --git a/IPython/terminal/console/completer.py b/IPython/terminal/console/completer.py
index a85b6e5..40c2644 100644
--- a/IPython/terminal/console/completer.py
+++ b/IPython/terminal/console/completer.py
@@ -36,7 +36,7 @@ class ZMQCompleter(IPCompleter):
         
         # send completion request to kernel
         # Give the kernel up to 0.5s to respond
-        msg_id = self.client.shell_channel.complete(
+        msg_id = self.client.complete(
             code=line,
             cursor_pos=cursor_pos,
         )
diff --git a/IPython/terminal/console/interactiveshell.py b/IPython/terminal/console/interactiveshell.py
index 1daba8e..ef97c87 100644
--- a/IPython/terminal/console/interactiveshell.py
+++ b/IPython/terminal/console/interactiveshell.py
@@ -157,8 +157,8 @@ class ZMQTerminalInteractiveShell(TerminalInteractiveShell):
         # flush stale replies, which could have been ignored, due to missed heartbeats
         while self.client.shell_channel.msg_ready():
             self.client.shell_channel.get_msg()
-        # shell_channel.execute takes 'hidden', which is the inverse of store_hist
-        msg_id = self.client.shell_channel.execute(cell, not store_history)
+        # execute takes 'hidden', which is the inverse of store_hist
+        msg_id = self.client.execute(cell, not store_history)
         
         # first thing is wait for any side effects (output, stdin, etc.)
         self._executing = True
@@ -399,7 +399,7 @@ class ZMQTerminalInteractiveShell(TerminalInteractiveShell):
             # only send stdin reply if there *was not* another request
             # or execution finished while we were reading.
             if not (self.client.stdin_channel.msg_ready() or self.client.shell_channel.msg_ready()):
-                self.client.stdin_channel.input(raw_data)
+                self.client.input(raw_data)
 
     def mainloop(self, display_banner=False):
         while True:
@@ -414,7 +414,7 @@ class ZMQTerminalInteractiveShell(TerminalInteractiveShell):
                 # handling seems rather unpredictable...
                 self.write("\nKeyboardInterrupt in interact()\n")
 
-        self.client.shell_channel.shutdown()
+        self.client.shutdown()
     
     def _banner1_default(self):
         return "IPython Console {version}\n".format(version=release.version)