@@ -94,7 +94,8 @@ def _gather_members(
9494 * ,
9595 want_all : bool ,
9696 indent : str ,
97- analyzer : ModuleAnalyzer | None ,
97+ analyzer_order : dict [str , int ],
98+ attr_docs : dict [tuple [str , str ], list [str ]],
9899 config : Config ,
99100 current_document : _CurrentDocument ,
100101 directive : DocumenterBridge ,
@@ -123,11 +124,6 @@ def _gather_members(
123124 current_document .autodoc_class = props .parts [0 ]
124125
125126 inherited_members = frozenset (options .inherited_members or ())
126- if analyzer is not None :
127- analyzer .analyze ()
128- attr_docs = analyzer .attr_docs
129- else :
130- attr_docs = {}
131127 found_members = _get_members_to_document (
132128 want_all = want_all ,
133129 get_attr = get_attr ,
@@ -187,8 +183,8 @@ def _gather_members(
187183 member_documenters = _sort_members (
188184 member_documenters ,
189185 member_order ,
190- analyzer = analyzer ,
191- options = options ,
186+ ignore_module_all = bool ( options . ignore_module_all ) ,
187+ analyzer_order = analyzer_order ,
192188 props = props ,
193189 )
194190
@@ -562,10 +558,10 @@ def _best_object_type_for_member(
562558
563559def _sort_members (
564560 documenters : list [tuple [Documenter , bool ]],
565- order : str ,
561+ order : Literal [ 'alphabetical' , 'bysource' , 'groupwise' ] ,
566562 * ,
567- analyzer : ModuleAnalyzer | None ,
568- options : _AutoDocumenterOptions ,
563+ ignore_module_all : bool ,
564+ analyzer_order : dict [ str , int ] ,
569565 props : _ItemProperties ,
570566) -> list [tuple [Documenter , bool ]]:
571567 """Sort the given member list."""
@@ -575,7 +571,7 @@ def _sort_members(
575571 elif order == 'bysource' :
576572 if (
577573 isinstance (props , _ModuleProperties )
578- and not options . ignore_module_all
574+ and not ignore_module_all
579575 and (module_all := props .all )
580576 ):
581577 # Sort by __all__
@@ -590,14 +586,13 @@ def key_func(entry: tuple[Documenter, bool]) -> int:
590586
591587 # By default, member discovery order matches source order,
592588 # as dicts are insertion-ordered from Python 3.7.
593- elif analyzer is not None :
589+ elif analyzer_order :
594590 # sort by source order, by virtue of the module analyzer
595- tagorder = analyzer .tagorder
596- tagorder_len = len (tagorder )
591+ order_len = len (analyzer_order )
597592
598593 def key_func (entry : tuple [Documenter , bool ]) -> int :
599594 fullname = entry [0 ].name .split ('::' )[1 ]
600- return tagorder .get (fullname , tagorder_len )
595+ return analyzer_order .get (fullname , order_len )
601596
602597 documenters .sort (key = key_func )
603598 else : # alphabetical
0 commit comments