diff --git a/CHANGES b/CHANGES index 3c2ec0537af..446b75b05f4 100644 --- a/CHANGES +++ b/CHANGES @@ -16,6 +16,9 @@ Features added Bugs fixed ---------- +* #9876: autodoc: Failed to document an imported class that is built from native + binary module + Testing -------- diff --git a/sphinx/ext/autodoc/__init__.py b/sphinx/ext/autodoc/__init__.py index 8a86f05b1af..e3b96c52278 100644 --- a/sphinx/ext/autodoc/__init__.py +++ b/sphinx/ext/autodoc/__init__.py @@ -1771,9 +1771,12 @@ def get_variable_comment(self) -> Optional[List[str]]: def add_content(self, more_content: Optional[StringList], no_docstring: bool = False ) -> None: if self.doc_as_attr and self.modname != self.get_real_modname(): - # override analyzer to obtain doccomment around its definition. - self.analyzer = ModuleAnalyzer.for_module(self.modname) - self.analyzer.analyze() + try: + # override analyzer to obtain doccomment around its definition. + self.analyzer = ModuleAnalyzer.for_module(self.modname) + self.analyzer.analyze() + except PycodeError: + pass if self.doc_as_attr and not self.get_variable_comment(): try: