From a96d12914e4918e8d014a81220bc148f1bcb506d Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Fri, 1 Apr 2022 02:25:04 +0900 Subject: [PATCH] Fix #10279: autodoc: Default values are rendered as a string literal When processing overloaded functions, autodoc unexpectedly renders its default values for kwonlyargs as a string literal unexpectedly --- CHANGES | 2 ++ sphinx/util/inspect.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index e9298d68451..7037723fe50 100644 --- a/CHANGES +++ b/CHANGES @@ -65,6 +65,8 @@ Features added Bugs fixed ---------- +* #10279: autodoc: Default values for keyword only arguments in overloaded + functions are rendered as a string literal * #10236: html search: objects are duplicated in search result * #9962: texinfo: Deprecation message for ``@definfoenclose`` command on bulding texinfo document diff --git a/sphinx/util/inspect.py b/sphinx/util/inspect.py index da548bd3ecd..b4382ba5347 100644 --- a/sphinx/util/inspect.py +++ b/sphinx/util/inspect.py @@ -777,7 +777,7 @@ def signature_from_ast(node: ast.FunctionDef, code: str = '') -> inspect.Signatu for i, arg in enumerate(args.kwonlyargs): default = ast_unparse(args.kw_defaults[i], code) or Parameter.empty # type: ignore annotation = ast_unparse(arg.annotation, code) or Parameter.empty - params.append(Parameter(arg.arg, Parameter.KEYWORD_ONLY, default=default, + params.append(Parameter(arg.arg, Parameter.KEYWORD_ONLY, default=DefaultValue(default), annotation=annotation)) if args.kwarg: