mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-12 18:51:50 +02:00
docs: added sphinx base structure
This commit is contained in:
25
.readthedocs.yaml
Normal file
25
.readthedocs.yaml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# .readthedocs.yaml
|
||||||
|
# Read the Docs configuration file
|
||||||
|
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
||||||
|
|
||||||
|
# Required
|
||||||
|
version: 2
|
||||||
|
|
||||||
|
# Set the version of Python and other tools you might need
|
||||||
|
build:
|
||||||
|
os: ubuntu-20.04
|
||||||
|
tools:
|
||||||
|
python: "3.9"
|
||||||
|
|
||||||
|
# Build documentation in the docs/ directory with Sphinx
|
||||||
|
sphinx:
|
||||||
|
configuration: docs/conf.py
|
||||||
|
|
||||||
|
# If using Sphinx, optionally build your docs in additional formats such as PDF
|
||||||
|
# formats:
|
||||||
|
# - pdf
|
||||||
|
|
||||||
|
# Optionally declare the Python requirements required to build your docs
|
||||||
|
python:
|
||||||
|
install:
|
||||||
|
- requirements: docs/requirements.txt
|
20
docs/Makefile
Normal file
20
docs/Makefile
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# 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
|
||||||
|
|
||||||
|
# Put it first so that "make" without argument is like "make help".
|
||||||
|
help:
|
||||||
|
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||||
|
|
||||||
|
.PHONY: help Makefile
|
||||||
|
|
||||||
|
# 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)
|
34
docs/_templates/custom-class-template.rst
vendored
Normal file
34
docs/_templates/custom-class-template.rst
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{{ fullname | escape | underline}}
|
||||||
|
|
||||||
|
.. currentmodule:: {{ module }}
|
||||||
|
|
||||||
|
.. autoclass:: {{ objname }}
|
||||||
|
:members:
|
||||||
|
:show-inheritance:
|
||||||
|
:inherited-members:
|
||||||
|
:special-members: __call__, __add__, __mul__
|
||||||
|
|
||||||
|
{% block methods %}
|
||||||
|
{% if methods %}
|
||||||
|
.. rubric:: {{ _('Methods') }}
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
:nosignatures:
|
||||||
|
{% for item in methods %}
|
||||||
|
{%- if not item.startswith('_') %}
|
||||||
|
~{{ name }}.{{ item }}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block attributes %}
|
||||||
|
{% if attributes %}
|
||||||
|
.. rubric:: {{ _('Attributes') }}
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
{% for item in attributes %}
|
||||||
|
~{{ name }}.{{ item }}
|
||||||
|
{%- endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
66
docs/_templates/custom-module-template.rst
vendored
Normal file
66
docs/_templates/custom-module-template.rst
vendored
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
{{ fullname | escape | underline}}
|
||||||
|
|
||||||
|
.. automodule:: {{ fullname }}
|
||||||
|
|
||||||
|
{% block attributes %}
|
||||||
|
{% if attributes %}
|
||||||
|
.. rubric:: Module attributes
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
:toctree:
|
||||||
|
{% for item in attributes %}
|
||||||
|
{{ item }}
|
||||||
|
{%- endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block functions %}
|
||||||
|
{% if functions %}
|
||||||
|
.. rubric:: {{ _('Functions') }}
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
:toctree:
|
||||||
|
:nosignatures:
|
||||||
|
{% for item in functions %}
|
||||||
|
{{ item }}
|
||||||
|
{%- endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block classes %}
|
||||||
|
{% if classes %}
|
||||||
|
.. rubric:: {{ _('Classes') }}
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
:toctree:
|
||||||
|
:template: custom-class-template.rst
|
||||||
|
:nosignatures:
|
||||||
|
{% for item in classes %}
|
||||||
|
{{ item }}
|
||||||
|
{%- endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block exceptions %}
|
||||||
|
{% if exceptions %}
|
||||||
|
.. rubric:: {{ _('Exceptions') }}
|
||||||
|
|
||||||
|
.. autosummary::
|
||||||
|
:toctree:
|
||||||
|
{% for item in exceptions %}
|
||||||
|
{{ item }}
|
||||||
|
{%- endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block modules %}
|
||||||
|
{% if modules %}
|
||||||
|
.. autosummary::
|
||||||
|
:toctree:
|
||||||
|
:template: custom-module-template.rst
|
||||||
|
:recursive:
|
||||||
|
{% for item in modules %}
|
||||||
|
{{ item }}
|
||||||
|
{%- endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
85
docs/conf.py
Normal file
85
docs/conf.py
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
# 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 pathlib
|
||||||
|
|
||||||
|
project = "BEC Widgets"
|
||||||
|
copyright = "2023, Paul Scherrer Institute"
|
||||||
|
author = "Paul Scherrer Institute"
|
||||||
|
|
||||||
|
# -- General configuration ---------------------------------------------------
|
||||||
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
||||||
|
|
||||||
|
current_path = pathlib.Path(__file__).parent.parent.resolve()
|
||||||
|
|
||||||
|
|
||||||
|
def get_version():
|
||||||
|
"""load the version from the version file"""
|
||||||
|
version_file = os.path.join(current_path, "setup.py")
|
||||||
|
with open(version_file, "r", encoding="utf-8") as file:
|
||||||
|
res = file.readline()
|
||||||
|
while not res.startswith("__version__"):
|
||||||
|
res = file.readline()
|
||||||
|
version = res.split("=")[1]
|
||||||
|
return version.strip().strip('"')
|
||||||
|
|
||||||
|
|
||||||
|
release = get_version()
|
||||||
|
|
||||||
|
extensions = [
|
||||||
|
"sphinx.ext.autodoc",
|
||||||
|
"sphinx.ext.autosummary",
|
||||||
|
# "sphinx.ext.coverage",
|
||||||
|
"sphinx.ext.viewcode",
|
||||||
|
"sphinx.ext.napoleon",
|
||||||
|
"sphinx_toolbox.collapse",
|
||||||
|
"sphinx_copybutton",
|
||||||
|
"myst_parser",
|
||||||
|
"sphinx_design",
|
||||||
|
]
|
||||||
|
|
||||||
|
myst_enable_extensions = [
|
||||||
|
"amsmath",
|
||||||
|
"attrs_inline",
|
||||||
|
"colon_fence",
|
||||||
|
"deflist",
|
||||||
|
"dollarmath",
|
||||||
|
"fieldlist",
|
||||||
|
"html_admonition",
|
||||||
|
"html_image",
|
||||||
|
"replacements",
|
||||||
|
"smartquotes",
|
||||||
|
"strikethrough",
|
||||||
|
"substitution",
|
||||||
|
"tasklist",
|
||||||
|
]
|
||||||
|
|
||||||
|
autosummary_generate = True # Turn on sphinx.ext.autosummary
|
||||||
|
add_module_names = False # Remove namespaces from class/method signatures
|
||||||
|
autodoc_inherit_docstrings = True # If no docstring, inherit from base class
|
||||||
|
set_type_checking_flag = True # Enable 'expensive' imports for sphinx_autodoc_typehints
|
||||||
|
autoclass_content = "both" # Include both class docstring and __init__
|
||||||
|
|
||||||
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
|
templates_path = ["_templates"]
|
||||||
|
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
|
||||||
|
|
||||||
|
language = "Python"
|
||||||
|
|
||||||
|
# -- Options for HTML output -------------------------------------------------
|
||||||
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
|
||||||
|
|
||||||
|
html_theme = "pydata_sphinx_theme"
|
||||||
|
html_static_path = ["_static"]
|
||||||
|
html_css_files = ["css/custom.css"]
|
||||||
|
html_logo = "_static/bec.png"
|
||||||
|
html_theme_options = {
|
||||||
|
"show_nav_level": 1,
|
||||||
|
"navbar_align": "content",
|
||||||
|
}
|
2
docs/developer/developer.md
Normal file
2
docs/developer/developer.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
(developer)=
|
||||||
|
# Developer
|
37
docs/index.md
Normal file
37
docs/index.md
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# BEC Widgets documentation
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
````{grid} 3
|
||||||
|
:gutter: 5
|
||||||
|
|
||||||
|
```{grid-item-card} Introduction
|
||||||
|
:link: introduction
|
||||||
|
:link-type: ref
|
||||||
|
|
||||||
|
General information about BEC Widgets.
|
||||||
|
```
|
||||||
|
|
||||||
|
```{grid-item-card} User
|
||||||
|
:link: user
|
||||||
|
:link-type: ref
|
||||||
|
|
||||||
|
Information for users of BEC Widgets.
|
||||||
|
```
|
||||||
|
|
||||||
|
```{grid-item-card} Developer
|
||||||
|
:link: developer
|
||||||
|
:link-type: ref
|
||||||
|
|
||||||
|
Information for developers of BEC Widgets.
|
||||||
|
```
|
||||||
|
````
|
||||||
|
|
||||||
|
|
||||||
|
```{toctree}
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
|
introduction/introduction
|
||||||
|
user/user
|
||||||
|
developer/developer
|
||||||
|
```
|
2
docs/introduction/introduction.md
Normal file
2
docs/introduction/introduction.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
(introduction)=
|
||||||
|
# Introduction
|
35
docs/make.bat
Normal file
35
docs/make.bat
Normal file
@ -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
|
9
docs/requirements.txt
Normal file
9
docs/requirements.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
sphinx
|
||||||
|
sphinx_copybutton
|
||||||
|
recommonmark
|
||||||
|
sphinx-toolbox
|
||||||
|
pydata-sphinx-theme
|
||||||
|
sphinx-copybutton
|
||||||
|
myst-parser
|
||||||
|
sphinx-design
|
||||||
|
bec-widgets
|
3
docs/user/user.md
Normal file
3
docs/user/user.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
(user)=
|
||||||
|
# User
|
||||||
|
|
Reference in New Issue
Block a user