diff --git a/CHANGES b/CHANGES index 6125b83a1da..7241391ae02 100644 --- a/CHANGES +++ b/CHANGES @@ -19,6 +19,7 @@ Bugs fixed * #8559: autodoc: AttributeError is raised when using forward-reference type annotations * #8568: autodoc: TypeError is raised on checking slots attribute +* #8567: autodoc: Instance attributes are incorrectly added to Parent class Testing -------- diff --git a/sphinx/ext/autodoc/__init__.py b/sphinx/ext/autodoc/__init__.py index 4bf97cc851a..5e078263a61 100644 --- a/sphinx/ext/autodoc/__init__.py +++ b/sphinx/ext/autodoc/__init__.py @@ -1856,7 +1856,8 @@ def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: def update_annotations(self, parent: Any) -> None: """Update __annotations__ to support type_comment and so on.""" try: - annotations = inspect.getannotations(parent) + annotations = dict(inspect.getannotations(parent)) + parent.__annotations__ = annotations analyzer = ModuleAnalyzer.for_module(self.modname) analyzer.analyze() @@ -2292,7 +2293,8 @@ def isinstanceattribute(self) -> bool: def update_annotations(self, parent: Any) -> None: """Update __annotations__ to support type_comment and so on.""" try: - annotations = inspect.getannotations(parent) + annotations = dict(inspect.getannotations(parent)) + parent.__annotations__ = annotations for cls in inspect.getmro(parent): try: