A Python handler for mkdocstrings.
Project description
mkdocstrings-python
A Python handler for mkdocstrings.
Requirements
mkdocstrings-python requires Python 3.7 or above.
To install Python 3.7, I recommend using pyenv
.
# install pyenv
git clone https://github.com/pyenv/pyenv ~/.pyenv
# setup pyenv (you should also put these three lines in .bashrc or similar)
export PATH="${HOME}/.pyenv/bin:${PATH}"
export PYENV_ROOT="${HOME}/.pyenv"
eval "$(pyenv init -)"
# install Python 3.7
pyenv install 3.7.12
# make it available globally
pyenv global system 3.7.12
Installation
You can install this handler as a mkdocstrings extra:
# PEP 621 dependencies declaration
# adapt to your dependencies manager
[project]
dependencies = [
"mkdocstrings[python]>=0.18",
]
You can also explicitely depend on the handler:
# PEP 621 dependencies declaration
# adapt to your dependencies manager
[project]
dependencies = [
"mkdocstrings-python",
]
Features
-
Data collection from source code: collection of the object-tree and the docstrings is done thanks to Griffe.
-
Support for type annotations: Griffe collects your type annotations and mkdocstrings uses them to display parameters types or return types. It is even able to automatically add cross-references to other objects from your API, from the standard library or from third-party libraries! See how to load inventories to enable it.
-
Recursive documentation of Python objects: just use the module dotted-path as identifier, and you get the full module docs. You don't need to inject documentation for each class, function, etc.
-
Support for documented attributes: attributes (variables) followed by a docstring (triple-quoted string) will be recognized by Griffe in modules, classes and even in
__init__
methods. -
Multiple docstring-styles support: common support for Google-style, Numpydoc-style, and Sphinx-style docstrings. See Griffe's documentation on docstrings support.
-
Admonition support in Google docstrings: blocks like
Note:
orWarning:
will be transformed to their admonition equivalent. We do not support nested admonitions in docstrings! -
Every object has a TOC entry: we render a heading for each object, meaning MkDocs picks them into the Table of Contents, which is nicely display by the Material theme. Thanks to mkdocstrings cross-reference ability, you can reference other objects within your docstrings, with the classic Markdown syntax:
[this object][package.module.object]
or directly with[package.module.object][]
-
Source code display: mkdocstrings can add a collapsible div containing the highlighted source code of the Python object.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for mkdocstrings-python-0.6.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86d23bf8d13a7d454cd612709e90a6d28bb3891dcc40e26d7a664961d952eba5 |
|
MD5 | d6160206d23877d22c8ee1ea26942caa |
|
BLAKE2b-256 | b2b904e2bb624e9aa9c16be260f41aaa2ce27f06d5e7307bd132dacbbe19f882 |
Hashes for mkdocstrings_python-0.6.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8073f4e92efc7fd9c193c27625c810b2d272b6c49a4b8f616652da5968aae4cc |
|
MD5 | 7f89859f225d0056c2d63c4a4bf89b69 |
|
BLAKE2b-256 | 04715ea47a6a8e45ef34292fe5beca4a0d4808db3ef6e38add8538ee7eff80ab |