@@ -39,10 +39,9 @@ def send(self, stream, msg_type, content=None, parent=None, ident=None, buffers=
3939 msg = self .msg (msg_type , content = content , parent = parent , header = header , metadata = metadata )
4040 msg ['channel' ] = stream .channel
4141
42- from bokeh .io import curdoc
4342 from bokeh .document .events import MessageSentEvent
4443
45- doc = curdoc ()
44+ doc = self . document
4645 doc .on_message ("ipywidgets_bokeh" , self .receive )
4746
4847 packed = self .pack (msg )
@@ -64,9 +63,8 @@ def send(self, stream, msg_type, content=None, parent=None, ident=None, buffers=
6463 data = b"" .join (items )
6564 else :
6665 data = packed .decode ("utf-8" )
67-
6866 event = MessageSentEvent (doc , "ipywidgets_bokeh" , data )
69- doc . _trigger_on_change (event )
67+ self . _trigger_change (event )
7068
7169 def receive (self , data : str ) -> None :
7270 msg = json .loads (data )
@@ -76,6 +74,14 @@ def receive(self, data: str) -> None:
7674 msg_list = [ BytesWrap (k ) for k in msg_serialized ]
7775 self .parent .dispatch_shell (stream , msg_list )
7876
77+ @property
78+ def document (self ):
79+ from bokeh .io import curdoc
80+ return curdoc ()
81+
82+ def _trigger_change (self , event ):
83+ self .document ._trigger_on_change (event )
84+
7985
8086class BokehKernel (ipykernel .kernelbase .Kernel ):
8187 implementation = 'ipython'
0 commit comments