Skip to content

Commit 9a903ed

Browse files
authored
Make BokehKernel more extensible (#13)
1 parent a52d403 commit 9a903ed

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

ipywidgets_bokeh/kernel.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

8086
class BokehKernel(ipykernel.kernelbase.Kernel):
8187
implementation = 'ipython'

0 commit comments

Comments
 (0)