@@ -101,7 +101,6 @@ def _document_members(
101101 events : EventManager ,
102102 get_attr : _AttrGetter ,
103103 indent : str ,
104- name : str ,
105104 options : _AutoDocumenterOptions ,
106105 props : _ItemProperties ,
107106 real_modname : str ,
@@ -129,7 +128,6 @@ def _document_members(
129128 directive = directive ,
130129 events = events ,
131130 get_attr = get_attr ,
132- name = name ,
133131 options = options ,
134132 props = props ,
135133 registry = registry ,
@@ -167,7 +165,6 @@ def _gather_members(
167165 directive : DocumenterBridge ,
168166 events : EventManager ,
169167 get_attr : _AttrGetter ,
170- name : str ,
171168 options : _AutoDocumenterOptions ,
172169 props : _ItemProperties ,
173170 registry : SphinxComponentRegistry ,
@@ -207,7 +204,6 @@ def _gather_members(
207204 get_attr = get_attr ,
208205 inherit_docstrings = config .autodoc_inherit_docstrings ,
209206 options = options ,
210- orig_name = name ,
211207 props = props ,
212208 inherited_members = inherited_members ,
213209 exclude_members = options .exclude_members ,
@@ -233,9 +229,9 @@ def _gather_members(
233229 doccls = registry .documenters [obj_type ]
234230 # give explicitly separated module name, so that members
235231 # of inner classes can be documented
236- module_prefix = f' { props . module_name } ::'
237- full_mname = module_prefix + '.' . join (( * props .parts , member_name ))
238- documenter = doccls (directive , full_mname , indent )
232+ dotted_parts = '.' . join (( * props . parts , member_name ))
233+ full_name = f' { props .module_name } :: { dotted_parts } '
234+ documenter = doccls (directive , full_name , indent )
239235
240236 # We now try to import all objects before ordering them. This is to
241237 # avoid possible circular imports if we were to import objects after
@@ -476,7 +472,6 @@ def _filter_members(
476472 events : EventManager ,
477473 get_attr : _AttrGetter ,
478474 options : _AutoDocumenterOptions ,
479- orig_name : str ,
480475 props : _ModuleProperties | _ClassDefProperties ,
481476 inherit_docstrings : bool ,
482477 inherited_members : Set [str ],
@@ -517,7 +512,7 @@ def _filter_members(
517512 'autodoc: failed to determine %s.%s (%r) to be documented, '
518513 'the following exception was raised:\n %s'
519514 ),
520- orig_name ,
515+ props . full_name ,
521516 member_name ,
522517 member_obj ,
523518 exc ,
@@ -633,7 +628,10 @@ def _sort_members(
633628 """Sort the given member list."""
634629 if order == 'groupwise' :
635630 # sort by group; alphabetically within groups
636- documenters .sort (key = lambda e : (e [0 ].props ._groupwise_order_key , e [0 ].name ))
631+ def group_order (entry : tuple [Documenter , bool ]) -> tuple [int , str ]:
632+ return entry [0 ].props ._groupwise_order_key , entry [0 ].props .full_name
633+
634+ documenters .sort (key = group_order )
637635 elif order == 'bysource' :
638636 if (
639637 isinstance (props , _ModuleProperties )
@@ -644,25 +642,25 @@ def _sort_members(
644642 module_all_idx = {name : idx for idx , name in enumerate (module_all )}
645643 module_all_len = len (module_all )
646644
647- def key_func (entry : tuple [Documenter , bool ]) -> int :
648- fullname = entry [0 ].name . split ( '::' )[ 1 ]
645+ def source_order (entry : tuple [Documenter , bool ]) -> int :
646+ fullname = entry [0 ].props . dotted_parts
649647 return module_all_idx .get (fullname , module_all_len )
650648
651- documenters .sort (key = key_func )
649+ documenters .sort (key = source_order )
652650
653651 # By default, member discovery order matches source order,
654652 # as dicts are insertion-ordered from Python 3.7.
655653 elif analyzer_order :
656654 # sort by source order, by virtue of the module analyzer
657655 order_len = len (analyzer_order )
658656
659- def key_func (entry : tuple [Documenter , bool ]) -> int :
660- fullname = entry [0 ].name . split ( '::' )[ 1 ]
657+ def source_order (entry : tuple [Documenter , bool ]) -> int :
658+ fullname = entry [0 ].props . dotted_parts
661659 return analyzer_order .get (fullname , order_len )
662660
663- documenters .sort (key = key_func )
661+ documenters .sort (key = source_order )
664662 else : # alphabetical
665- documenters .sort (key = lambda e : e [0 ].name )
663+ documenters .sort (key = lambda entry : entry [0 ].props . full_name )
666664
667665 return documenters
668666
0 commit comments