From ce8941150f724e4f20ee50b4e552007d6f31aa54 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 19 May 2026 14:59:25 +0100 Subject: [PATCH] Don't print overload per optional parameter in sphinx documentation --- docs/conf.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/conf.py b/docs/conf.py index 462d6cb2a..12355c917 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -449,6 +449,25 @@ def build_finished(app, exception): print("All python objects are linked in the documentation.") +from sphinx.ext import autodoc +from typing import Any + +class MethodDocumenter(autodoc.MethodDocumenter): + def format_signature(self, **kwargs: Any) -> str: + sigs = super().format_signature(**kwargs) + # don't print overloads with each optional parameter removed, just the main entry + return sigs.split('\n')[0] + +class FunctionDocumenter(autodoc.FunctionDocumenter): + def format_signature(self, **kwargs: Any) -> str: + sigs = super().format_signature(**kwargs) + # don't print overloads with each optional parameter removed, just the main entry + return sigs.split('\n')[0] + + def setup(app): app.connect('autodoc-skip-member', maybe_skip_member) app.connect('build-finished', build_finished) + + app.add_autodocumenter(FunctionDocumenter, override=True) + app.add_autodocumenter(MethodDocumenter, override=True)