refactor: Deprecate InstanceAttributeDocumenter

InstanceAttributeDocumenter is merged into AttributeDocumenter in #7946
and #8444. So it is no longer needed now.
This commit is contained in:
Takeshi KOMIYA 2020-11-26 01:22:23 +09:00
parent c941b9cb14
commit 93c9ce5cd8
4 changed files with 15 additions and 39 deletions

View File

@ -16,6 +16,7 @@ Deprecated
* The ``follow_wrapped`` argument of ``sphinx.util.inspect.signature()`` * The ``follow_wrapped`` argument of ``sphinx.util.inspect.signature()``
* ``sphinx.ext.autodoc.Documenter.get_object_members()`` * ``sphinx.ext.autodoc.Documenter.get_object_members()``
* ``sphinx.ext.autodoc.DataDeclarationDocumenter`` * ``sphinx.ext.autodoc.DataDeclarationDocumenter``
* ``sphinx.ext.autodoc.InstanceAttributeDocumenter``
* ``sphinx.ext.autodoc.SlotsAttributeDocumenter`` * ``sphinx.ext.autodoc.SlotsAttributeDocumenter``
* ``sphinx.ext.autodoc.TypeVarDocumenter`` * ``sphinx.ext.autodoc.TypeVarDocumenter``
* ``sphinx.ext.autodoc.importer._getannotations()`` * ``sphinx.ext.autodoc.importer._getannotations()``

View File

@ -41,6 +41,11 @@ The following is a list of deprecated interfaces.
- 5.0 - 5.0
- ``sphinx.ext.autodoc.DataDocumenter`` - ``sphinx.ext.autodoc.DataDocumenter``
* - ``sphinx.ext.autodoc.InstanceAttributeDocumenter``
- 3.4
- 5.0
- ``sphinx.ext.autodoc.AttributeDocumenter``
* - ``sphinx.ext.autodoc.SlotsAttributeDocumenter`` * - ``sphinx.ext.autodoc.SlotsAttributeDocumenter``
- 3.4 - 3.4
- 5.0 - 5.0

View File

@ -2337,37 +2337,10 @@ class InstanceAttributeDocumenter(AttributeDocumenter):
# must be higher than AttributeDocumenter # must be higher than AttributeDocumenter
priority = 11 priority = 11
@classmethod def __init__(self, *args: Any, **kwargs: Any) -> None:
def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any warnings.warn("%s is deprecated." % self.__class__.__name__,
) -> bool: RemovedInSphinx50Warning, stacklevel=2)
"""This documents only INSTANCEATTR members.""" super().__init__(*args, **kwargs)
return (not isinstance(parent, ModuleDocumenter) and
isattr and
member is INSTANCEATTR)
def import_parent(self) -> Any:
try:
parent = importlib.import_module(self.modname)
for name in self.objpath[:-1]:
parent = self.get_attr(parent, name)
return parent
except (ImportError, AttributeError):
return None
def import_object(self, raiseerror: bool = False) -> bool:
"""Never import anything."""
# disguise as an attribute
self.objtype = 'attribute'
self.object = INSTANCEATTR
self.parent = self.import_parent()
self._datadescriptor = False
return True
def add_content(self, more_content: Optional[StringList], no_docstring: bool = False
) -> None:
"""Never try to get a docstring from the object."""
super().add_content(more_content, no_docstring=True)
class SlotsAttributeDocumenter(AttributeDocumenter): class SlotsAttributeDocumenter(AttributeDocumenter):
@ -2441,7 +2414,6 @@ def setup(app: Sphinx) -> Dict[str, Any]:
app.add_autodocumenter(MethodDocumenter) app.add_autodocumenter(MethodDocumenter)
app.add_autodocumenter(AttributeDocumenter) app.add_autodocumenter(AttributeDocumenter)
app.add_autodocumenter(PropertyDocumenter) app.add_autodocumenter(PropertyDocumenter)
app.add_autodocumenter(InstanceAttributeDocumenter)
app.add_autodocumenter(NewTypeAttributeDocumenter) app.add_autodocumenter(NewTypeAttributeDocumenter)
app.add_config_value('autoclass_content', 'class', True, ENUM('both', 'class', 'init')) app.add_config_value('autoclass_content', 'class', True, ENUM('both', 'class', 'init'))

View File

@ -88,16 +88,14 @@ def setup_documenters(app: Any) -> None:
from sphinx.ext.autodoc import (AttributeDocumenter, ClassDocumenter, DataDocumenter, from sphinx.ext.autodoc import (AttributeDocumenter, ClassDocumenter, DataDocumenter,
DecoratorDocumenter, ExceptionDocumenter, DecoratorDocumenter, ExceptionDocumenter,
FunctionDocumenter, GenericAliasDocumenter, FunctionDocumenter, GenericAliasDocumenter,
InstanceAttributeDocumenter, MethodDocumenter, MethodDocumenter, ModuleDocumenter,
ModuleDocumenter, NewTypeAttributeDocumenter, NewTypeAttributeDocumenter, NewTypeDataDocumenter,
NewTypeDataDocumenter, PropertyDocumenter, PropertyDocumenter, SingledispatchFunctionDocumenter)
SingledispatchFunctionDocumenter)
documenters = [ documenters = [
ModuleDocumenter, ClassDocumenter, ExceptionDocumenter, DataDocumenter, ModuleDocumenter, ClassDocumenter, ExceptionDocumenter, DataDocumenter,
FunctionDocumenter, MethodDocumenter, NewTypeAttributeDocumenter, FunctionDocumenter, MethodDocumenter, NewTypeAttributeDocumenter,
NewTypeDataDocumenter, AttributeDocumenter, InstanceAttributeDocumenter, NewTypeDataDocumenter, AttributeDocumenter, DecoratorDocumenter, PropertyDocumenter,
DecoratorDocumenter, PropertyDocumenter, GenericAliasDocumenter, GenericAliasDocumenter, SingledispatchFunctionDocumenter,
SingledispatchFunctionDocumenter,
] # type: List[Type[Documenter]] ] # type: List[Type[Documenter]]
for documenter in documenters: for documenter in documenters:
app.registry.add_documenter(documenter.objtype, documenter) app.registry.add_documenter(documenter.objtype, documenter)