Provide utility functions for implementing the bokeh command.

build_single_handler_application(path: str, argv: List[str] | None = None) Application[source]

Return a Bokeh application built using a single handler for a script, notebook, or directory.

In general a Bokeh Application may have any number of handlers to initialize Document objects for new client sessions. However, in many cases only a single handler is needed. This function examines the path provided, and returns an Application initialized with one of the following handlers:

  • path (str) – path to a file or directory for creating a Bokeh application.

  • argv (seq[str], optional) – command line arguments to pass to the application handler






If path ends with a file then a warning will be printed regarding running directory-style apps by passing the directory instead.

build_single_handler_applications(paths: List[str], argvs: Dict[str, List[str]] | None = None) Dict[str, Application][source]

Return a dictionary mapping routes to Bokeh applications built using single handlers, for specified files or directories.

This function iterates over paths and argvs and calls build_single_handler_application() on each to generate the mapping.

  • paths (seq[str]) – paths to files or directories for creating Bokeh applications.

  • argvs (dict[str, list[str]], optional) – mapping of paths to command line arguments to pass to the handler for each path


dict[str, Application]



die(message: str, status: int = 1) None[source]

Print an error message and exit.

This function will call sys.exit with the given status and the process will terminate.

  • message (str) – error message to print

  • status (int) – the exit status to pass to sys.exit

report_server_init_errors(address: str | None = None, port: int | None = None, **kwargs: str) Iterator[None][source]

A context manager to help print more informative error messages when a Server cannot be started due to a network problem.

  • address (str) – network address that the server will be listening on

  • port (int) – network address that the server will be listening on


with report_server_init_errors(**server_kwargs):
    server = Server(applications, **server_kwargs)

If there are any errors (e.g. port or address in already in use) then a critical error will be logged and the process will terminate with a call to sys.exit(1)