summaryrefslogtreecommitdiff
path: root/sphinx/ext
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2020-06-12 02:07:27 +0900
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2020-06-12 22:55:50 +0900
commit3dc9df4e5423ca6a6ee36dfd892bda38f6d97a32 (patch)
treed8d530dc1e03a79d554e4c6f1e7482ad34976777 /sphinx/ext
parent79300711d2ab00ea00e2a9f43dc4cea433a44d80 (diff)
downloadsphinx-git-3dc9df4e5423ca6a6ee36dfd892bda38f6d97a32.tar.gz
Fix #7821: autodoc: TypeError is raised for overloaded C-ext function
Diffstat (limited to 'sphinx/ext')
-rw-r--r--sphinx/ext/autodoc/__init__.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/sphinx/ext/autodoc/__init__.py b/sphinx/ext/autodoc/__init__.py
index 06961d1f8..60780cd7b 100644
--- a/sphinx/ext/autodoc/__init__.py
+++ b/sphinx/ext/autodoc/__init__.py
@@ -1237,7 +1237,11 @@ class FunctionDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # typ
params = list(sig.parameters.values())
if params[0].annotation is Parameter.empty:
params[0] = params[0].replace(annotation=typ)
- func.__signature__ = sig.replace(parameters=params) # type: ignore
+ try:
+ func.__signature__ = sig.replace(parameters=params) # type: ignore
+ except TypeError:
+ # failed to update signature (ex. built-in or extension types)
+ return
class SingledispatchFunctionDocumenter(FunctionDocumenter):
@@ -1833,7 +1837,11 @@ class MethodDocumenter(DocstringSignatureMixin, ClassLevelDocumenter): # type:
params = list(sig.parameters.values())
if params[1].annotation is Parameter.empty:
params[1] = params[1].replace(annotation=typ)
- func.__signature__ = sig.replace(parameters=params) # type: ignore
+ try:
+ func.__signature__ = sig.replace(parameters=params) # type: ignore
+ except TypeError:
+ # failed to update signature (ex. built-in or extension types)
+ return
class SingledispatchMethodDocumenter(MethodDocumenter):