From c6e2ec20b74fb5a1a4970e6b417c3be7bc655919 Mon Sep 17 00:00:00 2001
From: Frederik Hennig <frederik.hennig@fau.de>
Date: Wed, 18 Dec 2024 14:10:59 +0100
Subject: [PATCH] update codegen module docs

---
 docs/Makefile                    |  7 +------
 docs/source/api/codegen.rst      | 21 ++++++++++++++++++---
 src/pystencils/codegen/driver.py | 15 +++++++++++++++
 3 files changed, 34 insertions(+), 9 deletions(-)

diff --git a/docs/Makefile b/docs/Makefile
index 800b4020a..a293f14ee 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -12,12 +12,7 @@ BUILDDIR      = build
 help:
 	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
 
-clean:
-	rm -rf source/reference/generated
-	rm -rf source/backend/generated
-	@$(SPHINXBUILD) -M clean "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help clean Makefile
+.PHONY: help html clean
 
 # Catch-all target: route all unknown targets to Sphinx using the new
 # "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
diff --git a/docs/source/api/codegen.rst b/docs/source/api/codegen.rst
index cf8db1700..d65e9a358 100644
--- a/docs/source/api/codegen.rst
+++ b/docs/source/api/codegen.rst
@@ -3,15 +3,14 @@ pystencils.codegen
 
 .. module:: pystencils.codegen
 
-Kernel Creation Driver
-----------------------
+Invocation
+----------
 
 .. autosummary::
   :toctree: generated
   :nosignatures:
 
   create_kernel
-  get_driver
   
 Configuration
 -------------
@@ -43,6 +42,22 @@ Target Specification
 
   Target
 
+Code Generation Drivers
+-----------------------
+
+.. autosummary::
+  :toctree: generated
+  :nosignatures:
+  :template: autosummary/entire_class.rst
+
+  driver.DefaultKernelCreationDriver
+
+.. autosummary::
+  :toctree: generated
+  :nosignatures:
+
+  get_driver
+
 Output Code Objects
 -------------------
 
diff --git a/src/pystencils/codegen/driver.py b/src/pystencils/codegen/driver.py
index 62a3f44db..2ab906366 100644
--- a/src/pystencils/codegen/driver.py
+++ b/src/pystencils/codegen/driver.py
@@ -81,10 +81,25 @@ def create_kernel(
 
 
 def get_driver(cfg: CreateKernelConfig, *, retain_intermediates: bool = False):
+    """Create a code generation driver object from the given configuration.
+
+    Args:
+        cfg: Configuration for the code generator
+        retain_intermediates: If `True`, instructs the driver to keep copies of
+            the intermediate results of its stages for later inspection.
+    """
     return DefaultKernelCreationDriver(cfg, retain_intermediates)
 
 
 class DefaultKernelCreationDriver:
+    """Drives the default kernel creation sequence.
+
+    Args:
+        cfg: Configuration for the code generator
+        retain_intermediates: If `True`, instructs the driver to keep copies of
+            the intermediate results of its stages for later inspection.
+    """
+
     def __init__(self, cfg: CreateKernelConfig, retain_intermediates: bool = False):
         self._cfg = cfg
 
-- 
GitLab