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.application.handlers.function — Bokeh 1.0.2 documentation

bokeh.application.handlers.function

Provide a Bokeh Application Handler to build up documents by running a specified Python function.

This Handler is not used by the Bokeh server command line tool, but is often useful if users wish to embed the Bokeh server programmatically:

def make_doc(doc):

    # do work to modify the document, add plots, widgets, etc.

    return doc

app = Application(FunctionHandler(make_doc))

server = Server({'/bkapp': app}, io_loop=IOLoop.current())

server.start()

For complete examples of this technique, see examples/howto/server_embed

class FunctionHandler(func)[source]

A Handler that accepts a plain python function to use for modifying Bokeh Documents.

For example, the following code configures a handler with a function that adds an empty plot to a Document:

def add_empty_plot(doc):
    p = figure(x_range=(0,10), y_range=(0, 10))
    doc.add_root(p)
    return doc

handler = FunctionHandler(add_empty_plot)

This handler could be configured on an Application, and the Application would run this function every time a new session is created.

__init__(func)[source]
Parameters:func (callable) –

a function to modify and return a Bokeh Document. The function should have the form:

def func(doc):
    # modify doc
    return doc

and it should return the passed-in document after making any modifications in-place.

modify_document(doc)[source]

Execute the configured func to modify the document.

After this method is first executed, safe_to_fork will return False.

safe_to_fork

Whether it is still safe for the Bokeh server to fork new workers.

False if modify_doc has already been called.