2
2
# Distributed under the terms of the Modified BSD License.
3
3
"""Kernel pools that track and delegate to kernels."""
4
4
5
+ from jupyter_client .session import Session
6
+
5
7
from tornado .locks import Semaphore
6
8
from tornado import gen
7
9
10
+
8
11
class KernelPool (object ):
9
12
"""Spawns a pool of kernels.
10
13
@@ -105,9 +108,9 @@ def release(self, kernel_id):
105
108
self .kernel_pool .append (kernel_id )
106
109
self .kernel_semaphore .release ()
107
110
108
- def _on_reply (self , kernel_id , msg_list ):
111
+ def _on_reply (self , kernel_id , session , msg_list ):
109
112
"""Invokes the iopub callback registered for the `kernel_id` and passes
110
- it a deserialized list of kernel messsages .
113
+ it a deserialized list of kernel messages .
111
114
112
115
Parameters
113
116
----------
@@ -116,8 +119,8 @@ def _on_reply(self, kernel_id, msg_list):
116
119
msg_list : list
117
120
List of 0mq messages
118
121
"""
119
- idents , msg_list = self . kernel_clients [ kernel_id ]. session .feed_identities (msg_list )
120
- msg = self . kernel_clients [ kernel_id ]. session .deserialize (msg_list )
122
+ idents , msg_list = session .feed_identities (msg_list )
123
+ msg = session .deserialize (msg_list )
121
124
self .on_recv_funcs [kernel_id ](msg )
122
125
123
126
def create_on_reply (self , kernel_id ):
@@ -134,7 +137,12 @@ def create_on_reply(self, kernel_id):
134
137
function
135
138
Callback function taking a kernel ID and 0mq message list
136
139
"""
137
- return lambda msg_list : self ._on_reply (kernel_id , msg_list )
140
+ kernel = self .kernel_clients [kernel_id ]
141
+ session = Session (
142
+ config = kernel .session .config ,
143
+ key = kernel .session .key ,
144
+ )
145
+ return lambda msg_list : self ._on_reply (kernel_id , session , msg_list )
138
146
139
147
def on_recv (self , kernel_id , func ):
140
148
"""Registers a callback function for iopub messages from a particular
0 commit comments