Skip to content

Commit

Permalink
Fix sphinx-doc#10279: autodoc: Default values are rendered as a strin…
Browse files Browse the repository at this point in the history
…g literal

When processing overloaded functions, autodoc unexpectedly renders its
default values for kwonlyargs as a string literal unexpectedly
  • Loading branch information
tk0miya committed Mar 31, 2022
1 parent 223b1a9 commit 5e418b4
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 1 deletion.
2 changes: 2 additions & 0 deletions CHANGES
Expand Up @@ -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
Expand Down
6 changes: 5 additions & 1 deletion sphinx/util/inspect.py
Expand Up @@ -775,7 +775,11 @@ def signature_from_ast(node: ast.FunctionDef, code: str = '') -> inspect.Signatu
annotation=annotation))

for i, arg in enumerate(args.kwonlyargs):
default = ast_unparse(args.kw_defaults[i], code) or Parameter.empty # type: ignore
defaults = ast_unparse(args.kw_defaults[i], code)
if defaults:
default = DefaultValue(defaults) # type: ignore
else:
default = Parameter.empty
annotation = ast_unparse(arg.annotation, code) or Parameter.empty
params.append(Parameter(arg.arg, Parameter.KEYWORD_ONLY, default=default,
annotation=annotation))
Expand Down

0 comments on commit 5e418b4

Please sign in to comment.