mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2026-10-12 08:25:01 -05:00
Introduce `_auto_document_object()` (#14084)
This commit is contained in:
1 parent
adee28606f
commit
0f021c2a3e
4 files changed
+98
-107
No files matched your search
@@ -3,13 +3,10 @@ from __future__ import annotations
|
||||
from types import SimpleNamespace
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from docutils.statemachine import StringList
|
||||
|
||||
from sphinx.environment import _CurrentDocument
|
||||
from sphinx.events import EventManager
|
||||
from sphinx.ext.autodoc._directive_options import _process_documenter_options
|
||||
from sphinx.ext.autodoc._generate import _generate_directives
|
||||
from sphinx.ext.autodoc._loader import _load_object_by_name
|
||||
from sphinx.ext.autodoc._generate import _auto_document_object
|
||||
from sphinx.ext.autodoc._shared import _AutodocConfig
|
||||
from sphinx.util.inspect import safe_getattr
|
||||
|
||||
@@ -65,34 +62,22 @@ def do_autodoc(
|
||||
options=options,
|
||||
)
|
||||
|
||||
props = _load_object_by_name(
|
||||
content = _auto_document_object(
|
||||
name=name,
|
||||
objtype=obj_type,
|
||||
current_document=current_document,
|
||||
obj_type=obj_type,
|
||||
config=config,
|
||||
current_document=current_document,
|
||||
events=events,
|
||||
get_attr=safe_getattr,
|
||||
more_content=None,
|
||||
options=doc_options,
|
||||
record_dependencies=set(),
|
||||
ref_context=ref_context,
|
||||
reread_always=reread_always,
|
||||
)
|
||||
if expect_import_error:
|
||||
assert props is None
|
||||
assert content is None
|
||||
return []
|
||||
|
||||
assert props is not None
|
||||
result = StringList()
|
||||
_generate_directives(
|
||||
config=config,
|
||||
current_document=current_document,
|
||||
events=events,
|
||||
get_attr=safe_getattr,
|
||||
indent='',
|
||||
options=doc_options,
|
||||
props=props,
|
||||
record_dependencies=set(),
|
||||
ref_context=ref_context,
|
||||
reread_always=reread_always,
|
||||
result=result,
|
||||
)
|
||||
return result.data
|
||||
assert content is not None
|
||||
return content.data
|
||||
@@ -14,7 +14,6 @@ from typing import TYPE_CHECKING
|
||||
from warnings import catch_warnings
|
||||
|
||||
import pytest
|
||||
from docutils.statemachine import StringList
|
||||
|
||||
from sphinx.environment import _CurrentDocument
|
||||
from sphinx.ext.autodoc._directive_options import (
|
||||
@@ -23,8 +22,7 @@ from sphinx.ext.autodoc._directive_options import (
|
||||
)
|
||||
from sphinx.ext.autodoc._docstrings import _get_docstring_lines
|
||||
from sphinx.ext.autodoc._documenters import Documenter
|
||||
from sphinx.ext.autodoc._generate import _generate_directives
|
||||
from sphinx.ext.autodoc._loader import _load_object_by_name
|
||||
from sphinx.ext.autodoc._generate import _auto_document_object
|
||||
from sphinx.ext.autodoc._property_types import _ItemProperties
|
||||
from sphinx.ext.autodoc._sentinels import ALL
|
||||
from sphinx.ext.autodoc._shared import _AutodocAttrGetter, _AutodocConfig
|
||||
@@ -217,31 +215,19 @@ def _assert_getter_works(
|
||||
current_document = _CurrentDocument()
|
||||
events = FakeEvents()
|
||||
|
||||
props = _load_object_by_name(
|
||||
name=name,
|
||||
objtype=objtype,
|
||||
current_document=current_document,
|
||||
_auto_document_object(
|
||||
config=config,
|
||||
current_document=current_document,
|
||||
events=events,
|
||||
get_attr=get_attr,
|
||||
more_content=None,
|
||||
name=name,
|
||||
obj_type=objtype,
|
||||
options=options,
|
||||
record_dependencies=set(),
|
||||
ref_context={},
|
||||
reread_always=set(),
|
||||
)
|
||||
if props is not None:
|
||||
_generate_directives(
|
||||
config=config,
|
||||
current_document=current_document,
|
||||
events=events,
|
||||
get_attr=get_attr,
|
||||
indent='',
|
||||
options=options,
|
||||
props=props,
|
||||
record_dependencies=set(),
|
||||
ref_context={},
|
||||
reread_always=set(),
|
||||
result=StringList(),
|
||||
)
|
||||
|
||||
hooked_members = {s[1] for s in getattr_spy}
|
||||
documented_members = {s[1] for s in processed_signatures}
|
||||
|
||||
Reference in new issue
Block a user