Skip to content

Commit 1560b8a

Browse files
committed
Add object_name to _ItemProperties
1 parent 4bed65e commit 1560b8a

File tree

4 files changed

+25
-19
lines changed

4 files changed

+25
-19
lines changed

sphinx/ext/autodoc/_documenters.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ def _load_object_by_name(self) -> Literal[True] | None:
263263
self.fullname = props.full_name
264264
self.module = module
265265
self.parent = parent
266-
self.object_name = props.name
266+
self.object_name = props.object_name
267267
self.object = props._obj
268268
if self.objtype == 'method':
269269
if 'staticmethod' in props.properties: # type: ignore[attr-defined]

sphinx/ext/autodoc/_property_types.py

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import dataclasses
44

5+
from sphinx.ext.autodoc._sentinels import RUNTIME_INSTANCE_ATTRIBUTE, UNINITIALIZED_ATTR
6+
57
TYPE_CHECKING = False
68
if TYPE_CHECKING:
79
from collections.abc import Sequence
@@ -33,8 +35,6 @@
3335
class _ItemProperties:
3436
#: The kind of object being documented
3537
obj_type: _AutodocObjType
36-
#: The name of the item
37-
name: str
3838
#: The dotted module name
3939
module_name: str
4040
#: The fully-qualified name within the module
@@ -44,9 +44,16 @@ class _ItemProperties:
4444

4545
_obj: Any
4646

47-
# @property
48-
# def name(self) -> str:
49-
# return self.module_name.rpartition('.')[2]
47+
@property
48+
def name(self) -> str:
49+
"""The name of the item"""
50+
return self.parts[-1]
51+
52+
@property
53+
def object_name(self) -> str:
54+
if self._obj is RUNTIME_INSTANCE_ATTRIBUTE or self._obj is UNINITIALIZED_ATTR:
55+
return ''
56+
return self.name
5057

5158
@property
5259
def full_name(self) -> str:
@@ -65,9 +72,17 @@ class _ModuleProperties(_ItemProperties):
6572
file_path: Path | None
6673
all: Sequence[str] | None
6774

68-
# @property
69-
# def name(self) -> str:
70-
# return self.module_name.rpartition('.')[2]
75+
@property
76+
def name(self) -> str:
77+
return self.module_name.rpartition('.')[2]
78+
79+
@property
80+
def object_name(self) -> str:
81+
return ''
82+
83+
@property
84+
def full_name(self) -> str:
85+
return self.module_name
7186

7287
@property
7388
def parent_names(self) -> tuple[str, ...]:

sphinx/ext/autodoc/importer.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -819,7 +819,6 @@ def _load_object_by_name(
819819

820820
props = _ModuleProperties(
821821
obj_type=objtype,
822-
name=object_name,
823822
module_name=module_name,
824823
docstring_lines=(),
825824
file_path=Path(file_path) if file_path is not None else None,
@@ -838,7 +837,6 @@ def _load_object_by_name(
838837

839838
props = _ClassDefProperties(
840839
obj_type=objtype, # type: ignore[arg-type]
841-
name=object_name,
842840
module_name=module_name,
843841
parts=parts,
844842
docstring_lines=(),
@@ -854,7 +852,6 @@ def _load_object_by_name(
854852

855853
props = _FunctionDefProperties(
856854
obj_type=objtype, # type: ignore[arg-type]
857-
name=object_name,
858855
module_name=module_name,
859856
parts=parts,
860857
docstring_lines=(),
@@ -871,7 +868,6 @@ def _load_object_by_name(
871868

872869
props = _FunctionDefProperties(
873870
obj_type=objtype,
874-
name=object_name,
875871
module_name=module_name,
876872
parts=parts,
877873
docstring_lines=(),
@@ -891,7 +887,6 @@ def _load_object_by_name(
891887

892888
props = _FunctionDefProperties(
893889
obj_type=objtype,
894-
name=object_name,
895890
module_name=module_name,
896891
parts=parts,
897892
docstring_lines=(),
@@ -917,7 +912,6 @@ def _load_object_by_name(
917912

918913
props = _AssignStatementProperties(
919914
obj_type=objtype,
920-
name=object_name,
921915
module_name=module_name,
922916
parts=parts,
923917
docstring_lines=(),
@@ -957,7 +951,6 @@ def _load_object_by_name(
957951

958952
props = _AssignStatementProperties(
959953
obj_type=objtype,
960-
name=object_name,
961954
module_name=module_name,
962955
parts=parts,
963956
docstring_lines=(),
@@ -970,7 +963,6 @@ def _load_object_by_name(
970963
else:
971964
props = _ItemProperties(
972965
obj_type=objtype,
973-
name=object_name,
974966
module_name=module_name,
975967
parts=parts,
976968
docstring_lines=(),

tests/test_extensions/test_ext_autodoc.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,7 @@ def formatsig(objtype, name, obj, args, retann):
163163
inst.args = args
164164
inst.retann = retann
165165
inst.props = _ClassDefProperties(
166-
obj_type=inst.objtype,
167-
name=name,
166+
obj_type=objtype,
168167
module_name=inst.modname,
169168
parts=(name,),
170169
docstring_lines=(),

0 commit comments

Comments
 (0)