forked from TopoToolbox/pytopotoolbox
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Sphinx docs generation (TopoToolbox#33)
This adds a basic framework for documentation using Sphinx. API documentation is automatically generated from the Python docstrings. A GitHub Actions workflow builds the documentation and pushes it to the repository's GitHub Pages site.
- Loading branch information
Showing
17 changed files
with
363 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
name: docs | ||
|
||
on: | ||
push: | ||
branches: ["main"] | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: Install Pandoc | ||
run: sudo apt-get install -y pandoc | ||
|
||
- name: Install Python build dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
pip install -r ${{ github.workspace }}/docs/requirements.txt | ||
python3 -m pip install .[opensimplex] | ||
- name: Build Sphinx documentation | ||
working-directory: ${{ github.workspace }}/docs | ||
run: | | ||
make clean | ||
make html | ||
- name: Package artifact | ||
uses: actions/upload-pages-artifact@v3 | ||
with: | ||
path: ${{ github.workspace }}/docs/_build/html | ||
|
||
deploy: | ||
needs: build | ||
permissions: | ||
pages: write | ||
id-token: write | ||
|
||
environment: | ||
name: github-pages | ||
url: ${{ steps.deployment.outputs.page_url }} | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Deploy to GitHub Pages | ||
id: deployment | ||
uses: actions/deploy-pages@v4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,14 @@ | ||
# ignore .vscode settings: | ||
.vscode/ | ||
|
||
# ignore example directory | ||
examples/perfectworld.tif | ||
|
||
# ignore dist directory | ||
dist/ | ||
|
||
# ignore C++/C library | ||
src/topotoolbox/libtopotoolbox.so | ||
|
||
# ingnore tests pycache | ||
tests/__pycache__ | ||
tests/__pycache__ | ||
|
||
# ignore build docs | ||
docs/_build/* | ||
|
||
# ignore _autosummary | ||
docs/_autosummary/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
# Minimal makefile for Sphinx documentation | ||
# | ||
|
||
# You can set these variables from the command line, and also | ||
# from the environment for the first two. | ||
SPHINXOPTS ?= | ||
SPHINXBUILD ?= sphinx-build | ||
SOURCEDIR = . | ||
BUILDDIR = _build | ||
|
||
EXAMPLEDIR = ../examples | ||
DOCEXAMPLEDIR = $(SOURCEDIR)/_examples | ||
|
||
# Put it first so that "make" without argument is like "make help". | ||
help: | ||
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) | ||
|
||
.PHONY: help Makefile | ||
|
||
# Target to build HTML documentation, including copying/removing examples | ||
html: | ||
@echo "Copying examples directory..." | ||
@cp -r $(EXAMPLEDIR) $(DOCEXAMPLEDIR) | ||
@$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) | ||
@echo "Cleaning up examples directory..." | ||
@rm -rf $(DOCEXAMPLEDIR) | ||
|
||
# Catch-all target: route all unknown targets to Sphinx using the new | ||
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). | ||
%: Makefile | ||
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# Generation Sphinx Documentation | ||
|
||
Before being able to generate the Docs, make sure to install all the python dependencies: `pip install -r requirements.txt` and pandoc. However, they can be ignored since they don't lead to any actual issues. To generate the Sphinx documentation HTML page, run the following commands (Linux): | ||
|
||
```bash | ||
cd /path/to/topotoolbox/docs/ | ||
make clean | ||
make html | ||
``` | ||
|
||
then open the `pytopotoolbox/docs/_build/html/index.html` file in your browser. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
API Documentation | ||
================= | ||
|
||
.. autosummary:: | ||
:toctree: _autosummary | ||
:recursive: | ||
|
||
topotoolbox |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
# Configuration file for the Sphinx documentation builder. | ||
# | ||
# For the full list of built-in configuration values, see the documentation: | ||
# https://www.sphinx-doc.org/en/master/usage/configuration.html | ||
|
||
# -- Project information ----------------------------------------------------- | ||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information | ||
|
||
import os | ||
import sys | ||
|
||
import sphinx_book_theme | ||
|
||
import topotoolbox | ||
|
||
|
||
extensions = [ | ||
'sphinx.ext.autodoc', | ||
'sphinx.ext.autosummary', | ||
'sphinx.ext.napoleon', | ||
'sphinx.ext.viewcode', | ||
'sphinx.ext.todo', | ||
'nbsphinx', | ||
] | ||
|
||
project = 'TopoToolbox' | ||
copyright = '2024, TopoToolbox Team' | ||
author = 'TopoToolbox Team' | ||
release = '3.0.1' | ||
|
||
# -- General configuration --------------------------------------------------- | ||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration | ||
|
||
templates_path = ['_templates'] | ||
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] | ||
|
||
|
||
# -- Options for HTML output ------------------------------------------------- | ||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output | ||
|
||
html_theme = 'sphinx_book_theme' | ||
html_static_path = ['_static'] | ||
html_logo = 'logo.png' | ||
|
||
html_context = { | ||
"default_mode": "light", | ||
} | ||
|
||
# -- Options for nbsphinx ---------------------------------------------------- | ||
|
||
nbsphinx_allow_errors = True | ||
|
||
# -- Options for autodoc ----------------------------------------------------- | ||
|
||
autodoc_default_options = { | ||
'members': True, | ||
'undoc-members': True, | ||
'private-members': False, | ||
'special-members': '__init__', | ||
'inherited-members': True, | ||
'show-inheritance': True, | ||
} | ||
|
||
autosummary_generate = True # Enable autosummary to generate stub files |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
Examples | ||
======== | ||
|
||
.. nbgallery:: | ||
/_examples/test_genGrid | ||
/_examples/test_GridObject | ||
/_examples/test_load_dem | ||
/_examples/example_magic_funcs |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
Welcome to TopoToolbox's python documentation! | ||
============================================== | ||
|
||
.. toctree:: | ||
:maxdepth: 1 | ||
:caption: Contents: | ||
|
||
Installing <installing> | ||
Tutorial <tutorial> | ||
Examples <examples> | ||
API <api> | ||
|
||
|
||
|
||
Indices and tables | ||
================== | ||
|
||
* :ref:`genindex` | ||
* :ref:`modindex` | ||
* :ref:`search` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
How to install | ||
============== | ||
|
||
Generating/Installing distribution archives | ||
------------------------------------------- | ||
|
||
For any operating system, install the following: | ||
|
||
- **Python** | ||
- **pip** | ||
- **Git** (only when *building* the package yourself) | ||
|
||
Linux | ||
~~~~~ | ||
|
||
**Installing from .whl file** | ||
|
||
Make sure to choose the appropriate file for your OS. For Linux, the file name should contain something like: `linux_x86_64` | ||
|
||
.. code-block:: bash | ||
pip install dist_name.whl | ||
**Installing directly from the repository:** | ||
|
||
.. code-block:: bash | ||
cd path/to/pytopotoolbox | ||
pip install . | ||
**Generating distribution archives** | ||
|
||
.. code-block:: bash | ||
cd path/to/pytopotoolbox | ||
python3 -m pip install --upgrade build | ||
python3 -m build | ||
Windows | ||
~~~~~~~ | ||
|
||
**Installing from .whl file** | ||
|
||
Make sure to choose the appropriate file for your OS. For Windows, the file name should contain something like: `win_amd64`. | ||
|
||
.. code-block:: bash | ||
pip install dist_name.whl | ||
**Installing directly from the repository:** | ||
|
||
Since there are C/C++ files that need to be compiled in order to build the package, there are a few extra steps to take. | ||
|
||
1. Install the `Developer Command Prompt for VS 2022 <https://visualstudio.microsoft.com/downloads/>`_. | ||
- Scroll down to '*All Downloads*' | ||
- Open '*Tools for Visual Studio*' | ||
- Download '*Build Tools for Visual Studio 2022*' | ||
- Install it while including the '*Desktop development with C++*' workload | ||
2. To ensure the compiler is working with 64-bit architecture, that is necessary for python, **open 'x64 Native Tools Command Prompt for VS 2022'** instead of the '*Developer Command Prompt*' that defaults to 32-bit architecture. | ||
3. In the newly opened terminal, run: | ||
|
||
.. code-block:: bash | ||
cd path\to\pytopotoolbox | ||
pip install . | ||
**Generating distribution archives** | ||
|
||
Open the 'x64 Native Tools Command Prompt for VS 2022' Terminal and run: | ||
|
||
.. code-block:: bash | ||
cd path\to\pytopotoolbox | ||
py -m pip install --upgrade build | ||
py -m build | ||
Mac | ||
~~~ | ||
|
||
*work in progress* |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
@ECHO OFF | ||
|
||
pushd %~dp0 | ||
|
||
REM Command file for Sphinx documentation | ||
|
||
if "%SPHINXBUILD%" == "" ( | ||
set SPHINXBUILD=sphinx-build | ||
) | ||
set SOURCEDIR=. | ||
set BUILDDIR=_build | ||
|
||
%SPHINXBUILD% >NUL 2>NUL | ||
if errorlevel 9009 ( | ||
echo. | ||
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx | ||
echo.installed, then set the SPHINXBUILD environment variable to point | ||
echo.to the full path of the 'sphinx-build' executable. Alternatively you | ||
echo.may add the Sphinx directory to PATH. | ||
echo. | ||
echo.If you don't have Sphinx installed, grab it from | ||
echo.https://www.sphinx-doc.org/ | ||
exit /b 1 | ||
) | ||
|
||
if "%1" == "" goto help | ||
|
||
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% | ||
goto end | ||
|
||
:help | ||
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% | ||
|
||
:end | ||
popd |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
Sphinx==7.3.7 | ||
sphinx-book-theme==1.1.2 | ||
nbsphinx==0.9.4 | ||
notebook==7.0.5 | ||
jupyter==1.0.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
Tutorial | ||
======== | ||
|
||
Introduction | ||
------------ | ||
|
||
Installing | ||
---------- | ||
|
||
First steps | ||
----------- | ||
|
||
Using the provided examples | ||
--------------------------- | ||
|
||
Using API documentation | ||
----------------------- | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.