Ejemplo n.º 1
0
def render_model(model, comm=None):
    if not isinstance(model, Model):
        raise ValueError("notebook_content expects a single Model instance")
    from ..config import panel_extension as pnext

    target = model.ref['id']

    (docs_json, [render_item]) = standalone_docs_json_and_render_items([model], True)
    div = div_for_render_item(render_item)
    render_item = render_item.to_json()
    requirements = [pnext._globals[ext] for ext in pnext._loaded_extensions
                    if ext in pnext._globals]
    ipywidget = 'ipywidgets_bokeh' in sys.modules

    script = DOC_NB_JS.render(
        docs_json=serialize_json(docs_json),
        render_items=serialize_json([render_item]),
        requirements=requirements,
        ipywidget=ipywidget
    )
    bokeh_script, bokeh_div = script, div
    html = "<div id='{id}'>{html}</div>".format(id=target, html=bokeh_div)

    data = {'text/html': html, 'application/javascript': bokeh_script}
    return ({'text/html': mimebundle_to_html(data), EXEC_MIME: ''},
            {EXEC_MIME: {'id': target}})
Ejemplo n.º 2
0
def render_model(model, comm=None):
    if not isinstance(model, Model):
        raise ValueError("notebook_content expects a single Model instance")

    target = model.ref['id']

    (docs_json, [render_item]) = standalone_docs_json_and_render_items([model],
                                                                       True)
    div = div_for_render_item(render_item)
    render_item = render_item.to_json()
    script = DOC_NB_JS.render(
        docs_json=serialize_json(docs_json),
        render_items=serialize_json([render_item]),
    )
    bokeh_script, bokeh_div = script, div
    html = "<div id='{id}'>{html}</div>".format(id=target, html=bokeh_div)

    data = {'text/html': html, 'application/javascript': bokeh_script}
    return ({
        'text/html': mimebundle_to_html(data),
        EXEC_MIME: ''
    }, {
        EXEC_MIME: {
            'id': target
        }
    })
Ejemplo n.º 3
0
def render_model(model, comm=None):
    if not isinstance(model, Model):
        raise ValueError("notebook_content expects a single Model instance")

    target = model.ref['id']

    (docs_json, [render_item]) = standalone_docs_json_and_render_items([model])
    div = div_for_render_item(render_item)
    render_item = render_item.to_json()
    script = DOC_NB_JS.render(
        docs_json=serialize_json(docs_json),
        render_items=serialize_json([render_item]),
    )
    bokeh_script, bokeh_div = encode_utf8(script), encode_utf8(div)
    html = "<div id='{id}'>{html}</div>".format(id=target, html=bokeh_div)

    # Publish bokeh plot JS
    msg_handler = bokeh_msg_handler.format(plot_id=target)

    if comm:
        comm_js = comm.js_template.format(plot_id=target, comm_id=comm.id, msg_handler=msg_handler)
        bokeh_js = '\n'.join([comm_js, bokeh_script])
    else:
        bokeh_js = bokeh_script

    data = {'text/html': html, 'application/javascript': bokeh_js}
    return ({'text/html': mimebundle_to_html(data), EXEC_MIME: ''},
            {EXEC_MIME: {'id': target}})
Ejemplo n.º 4
0
 def _model_to_traits(cls, model, document=None):
     if document is None:
         document = Document()
         document.add_root(model)
     kwargs = {}
     (docs_json, [render_item]) = standalone_docs_json_and_render_items([model], True)
     kwargs['doc_json'] = docs_json
     kwargs['render_items'] = [render_item.to_json()]
     kwargs['div'] = div_for_render_item(render_item)
     return kwargs, document
Ejemplo n.º 5
0
 def _model_to_traits(cls, model):
     if model.document is None:
         document = Document()
         document.add_root(model)
     (docs_json, [render_item]) = standalone_docs_json_and_render_items([model], True)
     render_bundle = dict(
         docs_json=docs_json,
         render_items=[render_item.to_json()],
         div=div_for_render_item(render_item),
     )
     return render_bundle
Ejemplo n.º 6
0
 def test_render(self) -> None:
     render_item = RenderItem(docid="doc123", elementid="foo123")
     assert bee.div_for_render_item(render_item).strip(
     ) == """<div class="bk-root" id="foo123"></div>"""
Ejemplo n.º 7
0
 def test_render(self):
     render_item = RenderItem(docid="doc123", elementid="foo123")
     assert bee.div_for_render_item(render_item).strip() == """<div class="bk-root" id="foo123"></div>"""