From 11f707f4046388c721cc5d5d64692987da54208e Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Sun, 30 Nov 2025 13:44:12 +0000 Subject: [PATCH 1/2] Compatibility with Sphinx 9 --- docs/conf.py | 4 ++-- sphinx_immaterial/__init__.py | 7 ++++++- sphinx_immaterial/apidoc/python/type_param_utils.py | 4 ++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 4b42f8be9..8cfc0a235 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -512,8 +512,8 @@ def get_colors(color_t: str): ("cpp:identifier", "my_ns3"), ("cpp:identifier", "cpp_apigen_demo"), # Example JavaScript types - ("js:func", "string"), - ("js:func", "SomeError"), + ("js:class", "string"), + ("js:class", "SomeError"), # pydantic_extra_types.color not present in object inventory ("py:class", "pydantic_extra_types.color.Color"), ] diff --git a/sphinx_immaterial/__init__.py b/sphinx_immaterial/__init__.py index 94a113bdb..2ac3786b5 100644 --- a/sphinx_immaterial/__init__.py +++ b/sphinx_immaterial/__init__.py @@ -324,9 +324,14 @@ def _config_inited( + "The sphinx.ext.napoleon extension may be used instead for NumPy-style docstring support." ) + # Enable the legacy (``Documenter``) autodoc implementation + # for all users of the theme + config.autodoc_use_legacy_class_based = True + def setup(app: Sphinx): - app.connect("config-inited", _config_inited) + # Run before sphinx.ext.autodoc._register_directives() + app.connect("config-inited", _config_inited, priority=50) app.setup_extension("sphinx_immaterial.css_and_javascript_bundles") app.setup_extension("sphinx_immaterial.external_resource_cache") diff --git a/sphinx_immaterial/apidoc/python/type_param_utils.py b/sphinx_immaterial/apidoc/python/type_param_utils.py index aafbfdfb8..7e0a73541 100644 --- a/sphinx_immaterial/apidoc/python/type_param_utils.py +++ b/sphinx_immaterial/apidoc/python/type_param_utils.py @@ -232,6 +232,10 @@ def stringify_annotation( for module in [ "sphinx.util.typing", "sphinx.ext.autodoc", + "sphinx.ext.autodoc._dynamic._loader", + "sphinx.ext.autodoc._dynamic._type_annotations", + "sphinx.ext.autodoc._legacy_class_based._documenters", + "sphinx.ext.autodoc._generate", "sphinx.ext.autodoc.typehints", "sphinx.util.inspect", "sphinx.ext.napoleon.docstring", From 812e9c05e386da434d049cada63c33656f296acc Mon Sep 17 00:00:00 2001 From: Brendan <2bndy5@gmail.com> Date: Sat, 6 Dec 2025 05:17:51 -0800 Subject: [PATCH 2/2] revert docs/conf.py --- docs/conf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 8cfc0a235..4b42f8be9 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -512,8 +512,8 @@ def get_colors(color_t: str): ("cpp:identifier", "my_ns3"), ("cpp:identifier", "cpp_apigen_demo"), # Example JavaScript types - ("js:class", "string"), - ("js:class", "SomeError"), + ("js:func", "string"), + ("js:func", "SomeError"), # pydantic_extra_types.color not present in object inventory ("py:class", "pydantic_extra_types.color.Color"), ]