diff options
author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2021-10-23 02:14:57 +0900 |
---|---|---|
committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2021-10-23 02:14:57 +0900 |
commit | ced8895b127c6ea84c74dc4df495d0f5e2560d74 (patch) | |
tree | b28daf6e633594c222eba2b5def2832e359ac617 | |
parent | 6472fb92244f2c8384e0a1b299109398e0e10a52 (diff) | |
download | sphinx-git-ced8895b127c6ea84c74dc4df495d0f5e2560d74.tar.gz |
Fix #9756: autodoc: Crashed if classmethod does not have __func__ attribute
-rw-r--r-- | CHANGES | 1 | ||||
-rw-r--r-- | sphinx/util/inspect.py | 2 |
2 files changed, 2 insertions, 1 deletions
@@ -60,6 +60,7 @@ Bugs fixed * #9657: autodoc: The base class for a subclass of mocked object is incorrect * #9607: autodoc: Incorrect base class detection for the subclasses of the generic class +* #9756: autodoc: Crashed if classmethod does not have __func__ attribute * #9630: autosummary: Failed to build summary table if :confval:`primary_domain` is not 'py' * #9670: html: Fix download file with special characters diff --git a/sphinx/util/inspect.py b/sphinx/util/inspect.py index 4482f2087..6a89d20e0 100644 --- a/sphinx/util/inspect.py +++ b/sphinx/util/inspect.py @@ -865,7 +865,7 @@ def getdoc(obj: Any, attrgetter: Callable = safe_getattr, if cls and name and isclassmethod(obj, cls, name): for basecls in getmro(cls): meth = basecls.__dict__.get(name) - if meth: + if meth and hasattr(meth, '__func__'): return getdoc(meth.__func__) doc = attrgetter(obj, '__doc__', None) |