def test_show_doc_no_server(mock_notebook_content, mock__publish_display_data, mock_get_comms): mock_get_comms.return_value = "comms" s = State() d = Document() mock_notebook_content.return_value = ["notebook_script", "notebook_div", d] class Obj(object): id = None def references(self): return [] assert mock__publish_display_data.call_count == 0 binb.show_doc(Obj(), s, True) expected_args = ({ 'application/javascript': 'notebook_script', 'application/vnd.bokehjs_exec.v0+json': '' }, ) expected_kwargs = { 'metadata': { 'application/vnd.bokehjs_exec.v0+json': { 'id': None } } } assert d._hold is not None assert mock__publish_display_data.call_count == 2 # two mime types assert mock__publish_display_data.call_args[0] == expected_args assert mock__publish_display_data.call_args[1] == expected_kwargs
def test_show_doc_no_server(mock_notebook_content, mock__publish_display_data, mock_get_comms): mock_get_comms.return_value = "comms" s = State() d = Document() mock_notebook_content.return_value = ["notebook_script", "notebook_div", d] class Obj(object): _id = None assert mock__publish_display_data.call_count == 0 binb.show_doc(Obj(), s, True) expected_args = ({'application/javascript': 'notebook_script', 'application/vnd.bokehjs_exec.v0+json': ''},) expected_kwargs = {'metadata': {'application/vnd.bokehjs_exec.v0+json': {'id': None}}} assert d._hold is not None assert mock__publish_display_data.call_count == 2 # two mime types assert mock__publish_display_data.call_args[0] == expected_args assert mock__publish_display_data.call_args[1] == expected_kwargs
def doRender(self, handlerId): clientHasBokeh = self.options.get("nostore_bokeh", "false") == "true" if not clientHasBokeh: output_notebook(hide_banner=True) data = self.entity.getNextData() if data is None: return x = None y = None if isinstance(data, (list, np.ndarray)): x = list( range(self.windowSize) ) if self.glyphRenderer is None else self.glyphRenderer.data_source.data[ 'x'] y = data if self.glyphRenderer is None else self._concatArrays( self.glyphRenderer.data_source.data['y'], data) if len(y) < self.windowSize: y = [0] * (self.windowSize - len(y)) + y elif len(y) > self.windowSize: y = self._delWindowElements(y) elif isinstance(data, pandas.core.frame.DataFrame): pd = pd.drop(pd.index[[0]]) #pd.index = list(range(len(pd.index))) pd['x'] = list(range(len(pd.index))) else: x = data[0] y = data[1] if self.glyphRenderer is None: self.glyphRenderer = self.createGlyphRenderer(self.figure, x, y) else: self.updateGlyphRenderer(self.figure, self.glyphRenderer) if self.glyphRenderer is None: print("Error: no glyphRenderer found") return self.glyphRenderer.data_source.data['x'] = x self.glyphRenderer.data_source.data['y'] = y if not self.comms_handle: state = curstate() doc = state.document if self.figure not in doc.roots: doc.add_root(self.figure) self.comms_handle = show_doc(self.figure, state, notebook_handle=True) else: push_notebook(handle=self.comms_handle)
def doRender(self, handlerId): clientHasBokeh = self.options.get("nostore_bokeh", "false") == "true" if not clientHasBokeh: output_notebook(hide_banner=True) data = self.entity.getNextData() if data is None: return x = None y = None if isinstance(data, (list,np.ndarray)): x = list(range(self.windowSize)) if self.glyphRenderer is None else self.glyphRenderer.data_source.data['x'] y = data if self.glyphRenderer is None else self._concatArrays(self.glyphRenderer.data_source.data['y'],data) if len(y) < self.windowSize: y = [0]*(self.windowSize-len(y)) + y elif len(y) > self.windowSize: y = self._delWindowElements(y) elif isinstance(data, pandas.core.frame.DataFrame): pd = pd.drop(pd.index[[0]]) #pd.index = list(range(len(pd.index))) pd['x'] = list(range(len(pd.index))) else: x = data[0] y = data[1] if self.glyphRenderer is None: self.glyphRenderer = self.createGlyphRenderer( self.figure, x, y ) else: self.updateGlyphRenderer( self.figure, self.glyphRenderer) if self.glyphRenderer is None: print("Error: no glyphRenderer found") return self.glyphRenderer.data_source.data['x'] = x self.glyphRenderer.data_source.data['y'] = y if not self.comms_handle: state = curstate() doc = state.document if self.figure not in doc.roots: doc.add_root(self.figure) self.comms_handle = show_doc(self.figure, state, notebook_handle=True) else: push_notebook(handle = self.comms_handle)