This docs on this page refers to a PREVIOUS VERSION. For the latest stable release, go to https://docs.bokeh.org/

Archived docs for versions <= 1.0.4 have had to be modified from their original published configuration, and may be missing some features (e.g. source listing)

All users are encourage to update to version 1.1 or later, as soon as they are able.

bokeh.util.notebook — Bokeh 0.12.9 documentation

Source code for bokeh.util.notebook

''' Functions useful for loading Bokeh code and data in Jupyter/Zeppelin notebooks.

'''
from __future__ import absolute_import

from ..core.templates import SCRIPT_TAG, AUTOLOAD_NB_JS

HTML_MIME_TYPE = 'text/html'
JS_MIME_TYPE   = 'application/javascript'
LOAD_MIME_TYPE = 'application/vnd.bokehjs_load.v0+json'
EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json'

_notebook_loaded = None

# TODO (bev) notebook_type and zeppelin bits should be removed after external zeppelin hook available
[docs]def load_notebook(resources=None, verbose=False, hide_banner=False, load_timeout=5000, notebook_type='jupyter'): ''' Prepare the IPython notebook for displaying Bokeh plots. Args: resources (Resource, optional) : how and where to load BokehJS from (default: CDN) verbose (bool, optional) : whether to report detailed settings (default: False) hide_banner (bool, optional): whether to hide the Bokeh banner (default: False) load_timeout (int, optional) : Timeout in milliseconds when plots assume load timed out (default: 5000) notebook_type (string): notebook_type (default: jupyter) .. warning:: Clearing the output cell containing the published BokehJS resources HTML code may cause Bokeh CSS styling to be removed. Returns: None ''' global _notebook_loaded from IPython.display import publish_display_data from .. import __version__ from ..core.templates import NOTEBOOK_LOAD from ..util.serialization import make_id from ..resources import CDN from ..util.compiler import bundle_all_models if resources is None: resources = CDN if not hide_banner: if resources.mode == 'inline': js_info = 'inline' css_info = 'inline' else: js_info = resources.js_files[0] if len(resources.js_files) == 1 else resources.js_files css_info = resources.css_files[0] if len(resources.css_files) == 1 else resources.css_files warnings = ["Warning: " + msg['text'] for msg in resources.messages if msg['type'] == 'warn'] if _notebook_loaded and verbose: warnings.append('Warning: BokehJS previously loaded') element_id = make_id() html = NOTEBOOK_LOAD.render( element_id = element_id, verbose = verbose, js_info = js_info, css_info = css_info, bokeh_version = __version__, warnings = warnings, ) else: element_id = None _notebook_loaded = resources custom_models_js = bundle_all_models() nb_js = _loading_js(resources, element_id, custom_models_js, load_timeout, register_mime=True) jl_js = _loading_js(resources, element_id, custom_models_js, load_timeout, register_mime=False) if notebook_type=='jupyter': if not hide_banner: publish_display_data({'text/html': html}) publish_display_data({ JS_MIME_TYPE : nb_js, LOAD_MIME_TYPE : jl_js }) else: if not hide_banner: _publish_zeppelin_data(html) _publish_zeppelin_data(SCRIPT_TAG.render(js_code=jl_js))
# TODO (bev) This will eventually go away def _publish_zeppelin_data(html): '''Embed html content via %html magic''' print('%html ' + html) def _loading_js(resources, element_id, custom_models_js, load_timeout=5000, register_mime=True): return AUTOLOAD_NB_JS.render( elementid = element_id, js_urls = resources.js_files, css_urls = resources.css_files, js_raw = resources.js_raw + [custom_models_js], css_raw = resources.css_raw_str, force = True, timeout = load_timeout, register_mime = register_mime )
[docs]def get_comms(target_name): ''' Create a Jupyter comms object for a specific target, that can be used to update Bokeh documents in the Jupyter notebook. Args: target_name (str) : the target name the Comms object should connect to Returns Jupyter Comms ''' from ipykernel.comm import Comm return Comm(target_name=target_name, data={})