Anaconda Enterprise: Documentation

# bokeh.sphinxext

In order to help automate and simplify the generation of Bokeh documentation, several Sphinx extensions have been created. Most of these will not be of general interest, except for bokeh.sphinxext.bokeh_plot, which allows anyone to include and embed bokeh plots directly in their own Sphinx docs.

## bokeh_autodoc

Integrate Bokeh extensions into Sphinx autodoc.

Ensures that autodoc directives such as `autoclass` automatically use Bokeh-specific directives (e.g., `bokeh-prop` and `bokeh-model`) when appropriate.

## bokeh_enum

Thoroughly document Bokeh enumerations

The `bokeh-enum` directive generates useful type information for the enumeration, including all the allowable values. If the number of values is large, the full list is put in a collapsible code block.

This directive takes the name of a Bokeh enum variable and the module to find the value as an argument:

    .. bokeh-enum:: baz
        :module: bokeh.sphinxext.sample

Examples

For the following definition of `bokeh.sphinxext.sample.Bar`:

    baz = enumeration("a", "b", "c")

the above usage yields the output:

> `bokeh.sphinxext.sample.``baz` = Enumeration(a, b, c)

## bokeh_gallery

Generate a gallery of Bokeh plots from a configuration file.

## bokeh_github

Simplify linking to Bokeh Github resources.

This module proved four new roles that can be uses to easily link to various resources in the Bokeh Github repository:

`:bokeh-commit:` : link to a specific commit

`:bokeh-issue:` : link to an issue

`:bokeh-pull:` : link to a pull request

`:bokeh-tree:` : (versioned) link to a source tree URL

Examples

The following code:

    The repo history shows that :bokeh-commit:`bf19bcb` was made in
    in :bokeh-pull:`1698`, which closed :bokeh-issue:`1694`. This included
    updating all of the files in the :bokeh-tree:`examples` subdirectory.

yields the output:

The repo history shows that commit bf19bcb was made in in pull request 1698,which closed #1694. This included updating all of the files in the examples subdirectory.

## bokeh_index_toctree

This specialized toctree subclass sorts toctree entries for releases.

it is convenient to add a glob for release notes in the top level `index.rst` file, so that the list does not have to be constantly updated and maintained:

    .. bokeh-index-toctree::
        :hidden:
        :glob:

        docs/installation
        docs/user_guide
        docs/user_guide/quickstart
        docs/releases/*

But the release files are named `0.1.0.rst`, `0.12.2.rst`, etc, and and default alphabetic sort will not produce good results. This directive will re-order any release documents according to semantic version.

## bokeh_model

Thoroughly document Bokeh model classes.

The `bokeh-model` directive will automatically document all the attributes (including Bokeh properties) of a Bokeh model class. A JSON prototype showing all the possible JSON fields will also be generated.

This directive takes the path to a Bokeh model class as an argument:

    .. bokeh-model:: Foo
        :module: bokeh.sphinxext.sample

Examples

For the following definition of `bokeh.sphinxext.sample.Foo`:

    class Foo(Model):
        ''' This is a Foo model. '''
        index = Either(Auto, Enum('abc', 'def', 'xzy'), help="doc for index")
        value = Tuple(Float, Float, help="doc for value")

the above usage yields the output:

> class `bokeh.sphinxext.sample.``Foo`(**kwargs)

>   Bases: `bokeh.model.Model`

>   This is a Foo model.

>   `index`

>     property type: `Either` ( `Auto` , `Enum` ( Enumeration(abc, def, xzy) ) )

>     doc for index

>   `value`

>     property type: `Tuple` ( `Float` , `Float` )

>     doc for value

> JSON Prototype

>     {
>       "id": "45ac9f41-9fd4-4dc4-bcca-6fcbfdbcecab",
>       "index": "auto",
>       "js_event_callbacks": {},
>       "js_property_callbacks": {},
>       "name": null,
>       "subscribed_events": [],
>       "tags": [],
>       "value": null
>     }

## bokeh_palette

Generate an inline visual representations of a single color palette.

The `:bokeh-palette:` role can be used with by providing any of the following:

- a palette name from `bokeh.palettes`, e.g. `Spectral9`
- a palette function from `bokeh.palettes` called with argument, e.g. `viridis(12)`
- An explicit list of colors: `['#000000', '#333333', '#666666', '#999999', '#cccccc', '#ffffff']`

The following usage of the the directive:

    * by name: :bokeh-palette:`Spectral9`

    * by function: :bokeh-palette:`viridis(12)`

    * by list: :bokeh-palette:`['#000000', '#333333', '#666666', '#999999', '#cccccc', '#ffffff']`

Generates the output:

> - by name:
> - by function:
> - by list:

Palette swatches are 20 pixels in height. For palettes short than 20 colors, the default width for the swatches is 20 pixels. If larger palettes are given, the width of the HTML spans is progressively reduced, down to a minimum of one pixel. For instance displaying the full Viridis palette with the expression

    :bokeh-palette:`viridis(256)`

Will generate the output:

## bokeh_palette_group

Generate visual representations of palettes in Bokeh palette groups.

The `bokeh.palettes` modules expose attributes such as `mpl`, `brewer`, and `d3` that provide groups of palettes. The `bokeh-palette-group` directive accepts the name of one of these groups, and generates a visual matrix of colors for every palette in the group.

As an example, the following usage of the the directive:

    .. bokeh-palette-group:: mpl

Generates the output:

> "

> ## Inferno
> 3 |  |  |
> 4 |  |  |  |
> 5 |  |  |  |  |
> 6 |  |  |  |  |  |
> 7 |  |  |  |  |  |  |
> 8 |  |  |  |  |  |  |  |
> 9 |  |  |  |  |  |  |  |  |
> 10 |  |  |  |  |  |  |  |  |  |
> 11 |  |  |  |  |  |  |  |  |  |  |

> ## Magma
> 3 |  |  |
> 4 |  |  |  |
> 5 |  |  |  |  |
> 6 |  |  |  |  |  |
> 7 |  |  |  |  |  |  |
> 8 |  |  |  |  |  |  |  |
> 9 |  |  |  |  |  |  |  |  |
> 10 |  |  |  |  |  |  |  |  |  |
> 11 |  |  |  |  |  |  |  |  |  |  |

> ## Plasma
> 3 |  |  |
> 4 |  |  |  |
> 5 |  |  |  |  |
> 6 |  |  |  |  |  |
> 7 |  |  |  |  |  |  |
> 8 |  |  |  |  |  |  |  |
> 9 |  |  |  |  |  |  |  |  |
> 10 |  |  |  |  |  |  |  |  |  |
> 11 |  |  |  |  |  |  |  |  |  |  |

> ## Viridis
> 3 |  |  |
> 4 |  |  |  |
> 5 |  |  |  |  |
> 6 |  |  |  |  |  |
> 7 |  |  |  |  |  |  |
> 8 |  |  |  |  |  |  |  |
> 9 |  |  |  |  |  |  |  |  |
> 10 |  |  |  |  |  |  |  |  |  |
> 11 |  |  |  |  |  |  |  |  |  |  |

## bokeh_plot

Include Bokeh plots in Sphinx HTML documentation.

For other output types, the placeholder text `[graph]` will be generated.

The `bokeh-plot` directive can be used by either supplying:

A path to a source file as the argument to the directive:

    .. bokeh-plot:: path/to/plot.py

Note

.py scripts are not scanned automatically! In order to include certain directories into .py scanning process use following directive in sphinx conf.py file: bokeh_plot_pyfile_include_dirs = [“dir1”,”dir2”]

Inline code as the content of the directive:

    .. bokeh-plot::

        from bokeh.plotting import figure, output_file, show

        output_file("example.html")

        x = [1, 2, 3, 4, 5]
        y = [6, 7, 6, 4, 5]

        p = figure(title="example", plot_width=300, plot_height=300)
        p.line(x, y, line_width=2)
        p.circle(x, y, size=10, fill_color="white")

        show(p)

This directive also works in conjunction with Sphinx autodoc, when used in docstrings.

The `bokeh-plot` directive accepts the following options:

source-position
: enum(‘above’, ‘below’, ‘none’)
  Where to locate the the block of formatted source code (if anywhere).
linenos
: flag
  Whether to display line numbers along with the source.

Examples

The inline example code above produces the following output:

    from bokeh.plotting import figure, output_file, show

    output_file("example.html")

    x = [1, 2, 3, 4, 5]
    y = [6, 7, 6, 4, 5]

    p = figure(title="example", plot_width=300, plot_height=300)
    p.line(x, y, line_width=2)
    p.circle(x, y, size=10, fill_color="white")

    show(p)

## bokeh_prop

Thoroughly document Bokeh property attributes.

The `bokeh-prop` directive generates useful type information for the property attribute, including cross links to the relevant property types. Additionally, any per-attribute docstrings are also displayed.

This directive takes the path to an attribute on a Bokeh model class as an argument:

    .. bokeh-prop:: Bar.thing
        :module: bokeh.sphinxext.sample

Examples

For the following definition of `bokeh.sphinxext.sample.Bar`:

    class Bar(Model):
        ''' This is a Bar model. '''
        thing = List(Int, help="doc for thing")

the above usage yields the output:

> `bokeh.sphinxext.sample.``thing`

>   property type: `List` ( `Int` )

>   doc for thing

## bokeh_sitemap

Generate a `sitemap.txt` to aid with search indexing.

`sitemap.txt` is a plain text list of all the pages in the docs site. Each URL is listed on a line in the text file. It is machine readable and used by search engines to know what pages are available for indexing.

All that is required to generate the sitemap is to list this module `bokeh.sphinxext.sitemap` in the list of extensions in the Sphinx configuration file `conf.py`.

## collapsible_code_block

Display code blocks in collapsible sections when outputting to HTML.

This directive takes a heading to use for the collapsible code block:

    .. collapsible-code-block:: python
        :heading: Some Code

        from __future__ import print_function

        print("Hello, Bokeh!")

This directive is identical to the standard `code-block` directive that Sphinx supplies, with the addition of one new option:

heading
: string
  A heading to put for the collapsible block. Clicking the heading expands or collapses the block

Examples

The inline example code above produces the following output:

Some Code

    from __future__ import print_function

    print("Hello, Bokeh!")