Documentation#
To build the documentation we use the Sphinx package. The theme used is Sphinx Book Theme.
Build the Documentation#
Follow the Developer Installation.
Once your virtual environment with DeepHyper is activated run the following commands:
$ cd deephyper/docs/
$ make html
Then open _build/html/index.html
in the navigator.
Additionnal information#
The documentation is made with Sphinx and the following extensions are used :
Extensions |
|
---|---|
Name |
Description |
autodoc |
automatically insert docstrings from modules |
napoleon |
inline code documentation |
doctest |
automatically test code snippets in doctest blocks |
intersphinx |
link between Sphinx documentation of different projects |
todo |
write “todo” entries that can be shown or hidden on build |
coverage |
checks for documentation coverage |
mathjax |
include math, rendered in the browser by MathJax |
ifconfig |
conditional inclusion of content based on config values |
viewcode |
include links to the source code of documented Python objects |
githubpages |
create .nojekyll file to publish the document on GitHub pages |
… |
… |
Sphinx uses reStructuredText files, click on this link if you want to have an overview of the corresponding syntax and mechanism.
Warning
Our documentation try to take part of the inline documentation in the code to auto-generate documentation from it. For that reason we highly recommend you to follow specific rules when writing inline documentation : https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html.
Add an Example#
The Examples are generated using the Sphinx-Gallery extension.
Example Source Files#
All example source files are located in the examples/
directory (a.k.a., the main gallery) at the root of the repository. Each example source file should follow the naming convention: plot_*.py
. Each subfolder of examples
that includes such example source files is called a sub-gallery.
Structuring Example Scripts#
To learn about the syntax used to define examples checkout the following guide: Structuring Python scripts for Sphinx-Gallery
Format Dropdown for Code Blocks#
When writing examples, some portions of codes can be heavy for the reader while not being interesting. For example, code that formats a plot or code that loads data. To hide but still include these code portions we use the Dropdown from Sphinx-Design. An example on how to use it:
# %%
# The title of a text block
# -------------------------
#
# Some text here...
# .. dropdown:: A title for my dropdown
bar = foo(x)
The blank line between # Some text here...
and # .. dropdown:: A title for my dropdown
is necessary to make the difference between the text block and the code block.
Setting the Preview Figure#
To set the figure from the example that should be displayed on the gallery page as preview use:
# sphinx_gallery_thumbnail_number = FIGURE_INDEX
_ = plt.subplots(...)
Build Examples#
Examples are automatically built when generating the documentation using the make html
command from the docs/
directory. During the build process, an .md5
hash is created for each example. This ensures that examples are only recompiled if their content has changed, reducing unnecessary computation.
Output Files#
The generated files from each example are stored in docs/examples/
. These include:
*.json
*.ipynb
*.py
*.md5
*.rst
*.zip
Committing Built Examples#
Once an example is finalized, all generated files should be committed to the repository. This prevents unnecessary recompilation on Read the Docs, as example execution can vary in resource consumption.