The official FiftyOne documentation, available at fiftyone.ai.
FiftyOne uses Sphinx and Sphinx-Napoleon to generate its documentation and API reference from source.
Before building the docs locally, ensure you have:
-
Python 3.11 installed and a virtual environment created specifically for documentation.
Note: Do NOT use the same environment where you ran
install.shwith the-d(dev mode) flag, as docs dependencies may conflict with test dependencies. -
pandoc installed.
-
A Unix-like shell environment to execute bash commands.
To build the documentation locally, follow these steps:
-
Install FiftyOne:
cd .. bash install.sh -
Install documentation-specific requirements:
pip install -r requirements/docs.txt
-
To use the
fiftyonerepository to autogenerate docs, you need to add it to yourPYTHONPATH:export PYTHONPATH=$PYTHONPATH:/path/to/fiftyone
Tip: to avoid running this every time you build the docs, add the previous
line to your ~/.bashrc, ~/.zshrc, or the appropriate shell profile for your
environment.
You can build the docs from source by running the generate_docs.bash script
in this folder:
bash docs/generate_docs.bashA couple notable flags are supported:
-cperforms a clean build by removing thedocs/buildfolder beforehand. This is sometimes necessary to force updates, e.g. if you have edited a template and want to see how it affects pages whose source files haven't changed-swill update static files only, i.e.custom.cssandcustom.jsmentioned below-fwill perform a fast build, i.e. zoo and plugin docs will be skipped
To preview a single page with full styling without running a full build:
bash docs/preview_page.bash user_guide/using_datasets.rstThis supports RST and Jupyter notebook files and opens the result in your browser. No prior build is required.
The main content is located in the docs/source folder. The files are written
in Sphinx RST format.
The API documentation is automatically generated from the Python source code, whose docstrings are written in Sphinx-Napoleon format.
Check out the existing patterns in the source files and you'll catch on.
For Voxel51 developers who are working with a source install of the FiftyOne Brain: the build script will automatically use your source install!
Voxel51 developers can include Teams SDK-related components in their local docs
build by including the -t flag:
bash docs/generate_docs.bash -t /path/to/fiftyone-teamsAll documentation, including RST and all code samples embedded in it, must follow our style guide.
Note that pre-commit hooks will automatically enforce the whitespace-related components of our style when you commit changes.
This extends the theme pydata_sphinx_theme. However, you should prefer to
make changes in the following locations instead of the theme itself whenever
possible:
docs/source/_staticcontainscustom.cssandcustom.jsfiles, where any CSS overrides or custom JS should be addeddocs/source/_templatescontains HTML files (Jinja2 templates) that override theme templates of the same name. These should extend the theme templates - see the existing templates for how to do this. If you need to override part of the theme template that isn't conveniently marked as a block (and isn't a separate file that you can override), our convention is to add a block prefixed withcustom_to the theme template, then override that block locally
To compile Sass styles into CSS for the documentation:
make cssThis command compiles the Sass files located in docs/source/assets/styles/
and outputs the compiled CSS to docs/source/_static/custom.css.