Re: [PATCH 02/13] docs: enable Sphinx autodoc extension to allow documenting python
From: Jani Nikula
Date: Thu Jan 15 2026 - 05:19:55 EST
On Wed, 14 Jan 2026, Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx> wrote:
> Adding python documentation is simple with Sphinx: all we need
> is to include the ext.autodoc extension and add the directories
> where the Python code sits at the sys.path.
>
> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx>
> ---
> Documentation/conf.py | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/conf.py b/Documentation/conf.py
> index 1ea2ae5c6276..429fcc9fd7f7 100644
> --- a/Documentation/conf.py
> +++ b/Documentation/conf.py
> @@ -13,11 +13,18 @@ from textwrap import dedent
>
> import sphinx
>
> +# Location of Documentation/ directory
> +doctree = os.path.abspath(".")
Looking this up based on __file__ would be more robust than cwd.
Calling this doctree is misleading because doctree is a specific Sphinx
term that means something else. The doctree directory is where the
parsed and pickled documents are cached.
Oh, I see that you're just moving this, but this is something that
should be fixed first.
> +
> # If extensions (or modules to document with autodoc) are in another directory,
> # add these directories to sys.path here. If the directory is relative to the
> # documentation root, use os.path.abspath to make it absolute, like shown here.
> sys.path.insert(0, os.path.abspath("sphinx"))
>
> +# Allow sphinx.ext.autodoc to document from tools and scripts
> +sys.path.append(f"{doctree}/../tools")
> +sys.path.append(f"{doctree}/../scripts")
These would be much nicer with pathlib.Path.
> +
> # Minimal supported version
> needs_sphinx = "3.4.3"
>
> @@ -32,9 +39,6 @@ else:
> # Include patterns that don't contain directory names, in glob format
> include_patterns = ["**.rst"]
>
> -# Location of Documentation/ directory
> -doctree = os.path.abspath(".")
> -
> # Exclude of patterns that don't contain directory names, in glob format.
> exclude_patterns = []
>
> @@ -151,6 +155,7 @@ extensions = [
> "maintainers_include",
> "parser_yaml",
> "rstFlatTable",
> + "sphinx.ext.autodoc",
> "sphinx.ext.autosectionlabel",
> "sphinx.ext.ifconfig",
> "translations",
--
Jani Nikula, Intel