Merge pull request #6657 from tk0miya/6605_crash_with_methodlikeobj

Fix #6605: autodoc: crashed when target code contains custom method-like objects
This commit is contained in:
Takeshi KOMIYA authored and GitHub committed 2019-08-19 00:10:12 +09:00
commit 4ab751c807
2 files changed
+6 -2

No files matched your search

+1
View File
@@ -56,6 +56,7 @@ Bugs fixed
imports when ``'bysource'`` order
* #6574: autodoc: missing type annotation for variadic and keyword parameters
* #6589: autodoc: Formatting issues with autodoc_typehints='none'
* #6605: autodoc: crashed when target code contains custom method-like objects
* #6498: autosummary: crashed with wrong autosummary_generate setting
* #6507: autosummary: crashes without no autosummary_generate setting
* #6511: LaTeX: autonumbered list can not be customized in LaTeX
+5 -2
View File
@@ -207,9 +207,12 @@ def isbuiltin(obj: Any) -> bool:
def iscoroutinefunction(obj: Any) -> bool:
"""Check if the object is coroutine-function."""
if inspect.iscoroutinefunction(obj):
if hasattr(obj, '__code__') and inspect.iscoroutinefunction(obj):
# check obj.__code__ because iscoroutinefunction() crashes for custom method-like
# objects (see https://github.com/sphinx-doc/sphinx/issues/6605)
return True
elif ispartial(obj) and inspect.iscoroutinefunction(obj.func):
elif (ispartial(obj) and hasattr(obj.func, '__code__') and
inspect.iscoroutinefunction(obj.func)):
# partialed
return True
else: