Contributing

Getting Started

Development

Whether you want to preview locally or add an example, you’ll need to first install dependencies and build the same. We recommend using a virtual environment:

$ python -m venv env
$ source env/bin/activate

Then install dependencies

$ pip install -r requirements.txt

and pandoc:

$ conda install pandoc

Adding or Updating an Example

All examples can be found within examples and generally the structure mirrors what you see in the web interface. Examples in the top level are introductory or general, and then each subfolder is a specific kind of example, meaning an algorithm or model flavor.

    examples/           # base 'Gallery of Examples' directory
    ├── README.txt
    ├── <.py files>     # introductory or basic examples
    └── cluster/        # generates the 'Cluster examples' sub-gallery
        ├── README.txt
        └── <.py files>

This means when you add a new folder (gallery) you should add a corresponding README.txt . The easiest thing to do is copy another one as an example, and modify the content for the gallery. Since there are almost infinite visualization options for river, we recommend that you organize sub-galleries based on either the flavor and/or the underlying software. Follow the existing convention for instruction. If you add a new dependency, please don’t forget to add to requirements.txt. If you want to chat about how to add your contribution before opening a pull request (suggested) please open an issue .

Note that you can add rst (restructured syntax) within the example as follows (or just view the current examples for better example):

#%%
# Here is text in the middle of an example that will be nicely rendered into either
# Python, notebook, or other downloaded file. You can use any kind of rst here.

Note that you can add as many python example files in a gallery as you’d like! The thumbnail is generated automatically. For a good set of examples, see this sphinx-gallery example gallery. For every example, you can click to view the source, or simply see it raw in the repository . If you want to do something that is not yet supported, please open an issue .

When you are ready to build the site:

$ make html

This will generate a _build/html directory that you can cd into and open a web browser to see.

$ cd _build/html
$ python -m http.server 9999

The above would allow you to open http://127.0.0.1:9999 or http://localhost:9999 to see the rendering. Note that when you rebuild, the original content is not removed. If you see any rendering issues, it’s helpful to remove the entire thing and gallery directory (or your specific example) and build again.

$ rm -rf _build/html
$ rm -rf auto_examples
$ make html

Note that your examples need to be prefixed with plot_ to be detected as examples to render!

Sphinx-Gallery successfully executed 1 out of 1 file subselected by:

    gallery_conf["filename_pattern"] = '/plot'
    gallery_conf["ignore_pattern"]   = '__init__\\.py'

after excluding 0 files that had previously been run (based on MD5).

Adding a New Page

We don’t have a lot of pages currently, as the site is intended for examples. However, if you want to add a new page, we recommend creating a directory (e.g., getting_started ) with an index.rst and then associated pages. You’ll then need to include it in index.rst in the root (or another place) so it gets included in the site.

Changing the Style

You can “override” any style setting by editing the _static/custom.css file.

Updating this contributing document

Since this file is also rendered in the web interface, make sure that you include full paths for links to assets in GitHub. A relative path will issue a build warning, and is likely to 404 in the online interface.

Learning Re-structured Syntax

If you want any help with custom syntax, this document and this document are helpful. If you are new to restructured syntax, there is a good guide here .

Frequently Asked Questions

Why does it say WARNING multiple files found for the document…

Sphinx gallery is taking a single Python example and generating multiple files, and sphinx detects this as “oh no I don’t know which one to choose.” This is a warning that can be safely ignored - if you look toward the bottom you’ll see that it ultimately chooses the .rst extension. The others are provided for the reader to download in different formats (notebook, etc.)

WARNING: document isn’t included in any toctree

If this is referencing an example, you are again fine - the sphinx-gallery will handle ensuring that it is linked! However if the warning is referencing a page that you recently added, it means that you haven’t linked it from anywhere. A “toctree” example can be found in index.rst - you basically want to add it there or to some other link from a page that is rendered.