diff options
| author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2020-06-12 02:07:27 +0900 |
|---|---|---|
| committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2020-06-12 22:55:50 +0900 |
| commit | 3dc9df4e5423ca6a6ee36dfd892bda38f6d97a32 (patch) | |
| tree | d8d530dc1e03a79d554e4c6f1e7482ad34976777 /sphinx/ext | |
| parent | 79300711d2ab00ea00e2a9f43dc4cea433a44d80 (diff) | |
| download | sphinx-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__.py | 12 |
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): |
