From 971383df2dcc464c54b4c2e55f704198202a7c52 Mon Sep 17 00:00:00 2001 From: Sylvain Corlay Date: Sat, 10 Apr 2021 11:53:00 +0200 Subject: [PATCH] Fix in-process kernel. --- ipykernel/inprocess/client.py | 6 ++++-- ipykernel/inprocess/ipkernel.py | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/ipykernel/inprocess/client.py b/ipykernel/inprocess/client.py index 37edf8064..1784a6eaa 100644 --- a/ipykernel/inprocess/client.py +++ b/ipykernel/inprocess/client.py @@ -11,6 +11,8 @@ # Imports #----------------------------------------------------------------------------- +import asyncio + # IPython imports from traitlets import Type, Instance, default from jupyter_client.clientabc import KernelClientABC @@ -173,8 +175,8 @@ def _dispatch_to_kernel(self, msg): stream = kernel.shell_stream self.session.send(stream, msg) msg_parts = stream.recv_multipart() - kernel.dispatch_shell(msg_parts) - + loop = asyncio.get_event_loop() + loop.run_until_complete(kernel.dispatch_shell(msg_parts)) idents, reply_msg = self.session.recv(stream, copy=False) self.shell_channel.call_handlers_later(reply_msg) diff --git a/ipykernel/inprocess/ipkernel.py b/ipykernel/inprocess/ipkernel.py index a070cb70a..942907226 100644 --- a/ipykernel/inprocess/ipkernel.py +++ b/ipykernel/inprocess/ipkernel.py @@ -3,7 +3,7 @@ # Copyright (c) IPython Development Team. # Distributed under the terms of the Modified BSD License. -from contextlib import asynccontextmanager +from contextlib import contextmanager import logging import sys @@ -76,7 +76,7 @@ def __init__(self, **traits): async def execute_request(self, stream, ident, parent): """ Override for temporary IO redirection. """ - async with self._redirected_io(): + with self._redirected_io(): await super(InProcessKernel, self).execute_request(stream, ident, parent) def start(self): @@ -113,7 +113,7 @@ def _input_request(self, prompt, ident, parent, password=False): # Protected interface #------------------------------------------------------------------------- - @asynccontextmanager + @contextmanager def _redirected_io(self): """ Temporarily redirect IO to the kernel. """