sphinx-apitree
apitree is a small library to generate a ready-to-use documentation with minimal friction!
apitree takes care of everything, so you can only focus on the code.
Usage
In docs/conf.py, replace everything by:
import apitree
apitree.make_project(
# e.g. `import visu3d as v3d` -> {'v3d': 'visu3d'}
project_name={'alias': 'my_module'},
globals=globals(),
)
Then to generate the doc:
sphinx-build -b html docs/ docs/_build
To add api/my_module/index somewhere in your toctree, like:
..toctree:
:caption: API
api/my_module/index
Features
- All included: Single function call include the theme, the API generation,...
- Auto-generate the API tree:
- Do not require
__all__(smart detect of which symbols are documented) - Add expandable toc tree with all symbols
- Do not require
- Add links to
GitHub. - Markdown (
.md) / Jupyter (.ipynb) support out of the box - Auto-cross-references (Just annotate markdown inline-code
my_symboland links are auto-added) - Contrary to
autodocandapitree, it also document:- Type annotations (
Union[], ...) - Attributes
- Type annotations (
- ...
Installation in a project
-
In
pyproject.toml[project.optional-dependencies] # Installed through `pip install .[docs]` docs = [ # Install `apitree` with all extensions (sphinx, theme,...) "sphinx-apitree[ext]", ]
-
In
.readthedocs.yamlsphinx: configuration: docs/conf.py python: install: - method: pip path: . extra_requirements: - docs
Options
By default, apitree tries to infer everything automatically. However there's sometimes
times where the user want to overwrite the default choices.
-
Package vs module: By default, all
__init__.pydefine the public API (imports documented), while the modules (module.py) define the implementation (imports not documented). You can explicitly mark a module as package, so it's import are documented, by adding in the module definition:__apitree__ = dict( is_package=True, )
Examples of projects using apitree
- https://github.com/google-research/visu3d (https://visu3d.readthedocs.io/)
- https://github.com/google-research/dataclass_array (https://dataclass-array.readthedocs.io/)
- https://github.com/google-research/etils (https://etils.readthedocs.io/)
- https://github.com/google-research/kauldron (https://kauldron.readthedocs.io/)
Generated with:
echo start \
&& cd ../visu3d && sphinx-build -b html docs/ docs/_build \
&& cd ../dataclass_array && sphinx-build -b html docs/ docs/_build \
&& cd ../etils && sphinx-build -b html docs/ docs/_build \
&& cd ../kauldron && sphinx-build -b html docs/ docs/_build \
&& echo finished
Metadata
Release files for sphinx-apitree 1.6.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| sphinx_apitree-1.6.2.tar.gz | 20.3 kB | Without provenance | Details for sphinx_apitree-1.6.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| sphinx_apitree-1.6.2-py3-none-any.whl | Python 3 | none | any | Details for sphinx_apitree-1.6.2-py3-none-any.whl |
Total release size: 45.8 kB
Release files / sphinx_apitree-1.6.2.tar.gz
| Download URL | sphinx_apitree-1.6.2.tar.gz |
|---|---|
| Size | 20.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fa786fb4255438daf0f4644ad6b0dca0ce9b366cea3abbf11fbe946e46a99d03
|
|
BLAKE2b-256 checksum How to use checksums |
fa3c4296fc8ff1f7d86e039624f5e62f63daae9f7004a3e1c391a5a9bc03c6ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.11
|
Release files / sphinx_apitree-1.6.2-py3-none-any.whl
| Download URL | sphinx_apitree-1.6.2-py3-none-any.whl |
|---|---|
| Size | 25.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
570116a420cc292c12903257222bf421f6a85e88e71919d83496de10c0a9dbd2
|
|
BLAKE2b-256 checksum How to use checksums |
680d2377dd421212fd1e83f729d417970dc976a2dbaa875ab9e6ecc8de2bfa6f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.11
|
Security for sphinx-apitree 1.6.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.