A Python handler for mkdocstrings.
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", ]
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
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
Warning: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
Source code display: mkdocstrings can add a collapsible div containing the highlighted source code of the Python object.