Skip to content
This repository was archived by the owner on Jun 3, 2024. It is now read-only.

Commit 75d6563

Browse files
authored
Merge pull request #84 from plotly/async-kernel
support async kernel in _request_jupyter_config
2 parents 3cd2da4 + 5b54333 commit 75d6563

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

jupyter_dash/comms.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
import asyncio
12
import IPython
23
from ipykernel.comm import Comm
4+
import nest_asyncio
35
import time
46
import sys
57

@@ -66,7 +68,12 @@ def capture_event(stream, ident, parent):
6668
if _jupyter_comm_response_received():
6769
break
6870

69-
kernel.do_one_iteration()
71+
if asyncio.iscoroutinefunction(kernel.do_one_iteration):
72+
nest_asyncio.apply()
73+
loop = asyncio.get_event_loop()
74+
loop.run_until_complete(kernel.do_one_iteration())
75+
else:
76+
kernel.do_one_iteration()
7077

7178
# Stop capturing events, revert the kernel shell handler to the default
7279
# execute_request behavior

jupyter_dash/jupyter_app.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,8 @@ def run_server(
220220
old_server = self._server_threads.get((host, port))
221221
if old_server:
222222
old_server.kill()
223+
old_server.join()
224+
del self._server_threads[(host, port)]
223225

224226
# Configure pathname prefix
225227
requests_pathname_prefix = self.config.get('requests_pathname_prefix', None)

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ retrying
55
ipython
66
ipykernel
77
ansi2html
8+
nest-asyncio

0 commit comments

Comments
 (0)