Merge pull request #8622 from tk0miya/8616_AttributeError_for_non_class

Fix #8616: autodoc: AttributeError when non-class is passed to autoclass
This commit is contained in:
Takeshi KOMIYA
2020-12-31 21:22:06 +09:00
committed by GitHub
2 changed files with 7 additions and 1 deletions

View File

@@ -19,6 +19,8 @@ Bugs fixed
* #8164: autodoc: Classes that inherit mocked class are not documented * #8164: autodoc: Classes that inherit mocked class are not documented
* #8602: autodoc: The ``autodoc-process-docstring`` event is emitted to the * #8602: autodoc: The ``autodoc-process-docstring`` event is emitted to the
non-datadescriptors unexpectedly non-datadescriptors unexpectedly
* #8616: autodoc: AttributeError is raised on non-class object is passed to
autoclass directive
Testing Testing
-------- --------

View File

@@ -1662,7 +1662,11 @@ class ClassDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # type:
def add_content(self, more_content: Optional[StringList], no_docstring: bool = False def add_content(self, more_content: Optional[StringList], no_docstring: bool = False
) -> None: ) -> None:
if self.doc_as_attr: if self.doc_as_attr:
more_content = StringList([_('alias of %s') % restify(self.object)], source='') try:
more_content = StringList([_('alias of %s') % restify(self.object)], source='')
except AttributeError:
pass # Invalid class object is passed.
super().add_content(more_content, no_docstring=True) super().add_content(more_content, no_docstring=True)
else: else:
super().add_content(more_content) super().add_content(more_content)