6868 from sphinx .application import Sphinx
6969 from sphinx .events import EventManager
7070 from sphinx .ext .autodoc import Documenter
71+ from sphinx .ext .autodoc ._property_types import _AutodocObjType
7172
7273logger = logging .getLogger (__name__ )
7374
@@ -223,20 +224,18 @@ def __init__(
223224 * ,
224225 config : Config ,
225226 events : EventManager ,
226- registry : SphinxComponentRegistry ,
227227 ) -> None :
228228 self .config = config
229229 self .events = events
230- self .registry = registry
231230 self .object = obj
232231
233232 def get_object_type (self , name : str , value : Any ) -> str :
234233 return _get_documenter (value , self .object )
235234
236- def is_skipped (self , name : str , value : Any , objtype : str ) -> bool :
235+ def is_skipped (self , name : str , value : Any , obj_type : _AutodocObjType ) -> bool :
237236 try :
238237 return self .events .emit_firstresult (
239- 'autodoc-skip-member' , objtype , name , value , False , {}
238+ 'autodoc-skip-member' , obj_type , name , value , False , {}
240239 )
241240 except Exception as exc :
242241 logger .warning (
@@ -323,16 +322,14 @@ def generate_autosummary_content(
323322 * ,
324323 config : Config ,
325324 events : EventManager ,
326- registry : SphinxComponentRegistry ,
327325) -> str :
328326 obj_type = _get_documenter (obj , parent )
329- doc = registry .documenters [obj_type ]
330327
331328 ns : dict [str , Any ] = {}
332329 ns .update (context )
333330
334- if doc . objtype == 'module' :
335- scanner = ModuleScanner (obj , config = config , events = events , registry = registry )
331+ if obj_type == 'module' :
332+ scanner = ModuleScanner (obj , config = config , events = events )
336333 ns ['members' ] = scanner .scan (imported_members )
337334
338335 respect_module_all = not config .autosummary_ignore_module_all
@@ -341,30 +338,27 @@ def generate_autosummary_content(
341338 )
342339
343340 ns ['functions' ], ns ['all_functions' ] = _get_members (
344- doc ,
341+ obj_type ,
345342 obj ,
346343 {'function' },
347344 config = config ,
348345 events = events ,
349- registry = registry ,
350346 imported = imported_members ,
351347 )
352348 ns ['classes' ], ns ['all_classes' ] = _get_members (
353- doc ,
349+ obj_type ,
354350 obj ,
355351 {'class' },
356352 config = config ,
357353 events = events ,
358- registry = registry ,
359354 imported = imported_members ,
360355 )
361356 ns ['exceptions' ], ns ['all_exceptions' ] = _get_members (
362- doc ,
357+ obj_type ,
363358 obj ,
364359 {'exception' },
365360 config = config ,
366361 events = events ,
367- registry = registry ,
368362 imported = imported_members ,
369363 )
370364 ns ['attributes' ], ns ['all_attributes' ] = _get_module_attrs (name , ns ['members' ])
@@ -387,12 +381,11 @@ def generate_autosummary_content(
387381 # Otherwise, use get_modules method normally
388382 if respect_module_all and '__all__' in dir (obj ):
389383 imported_modules , all_imported_modules = _get_members (
390- doc ,
384+ obj_type ,
391385 obj ,
392386 {'module' },
393387 config = config ,
394388 events = events ,
395- registry = registry ,
396389 imported = True ,
397390 )
398391 skip += all_imported_modules
@@ -406,34 +399,32 @@ def generate_autosummary_content(
406399 )
407400 ns ['modules' ] = imported_modules + modules
408401 ns ['all_modules' ] = all_imported_modules + all_modules
409- elif doc . objtype == 'class' :
402+ elif obj_type == 'class' :
410403 ns ['members' ] = dir (obj )
411404 ns ['inherited_members' ] = set (dir (obj )) - set (obj .__dict__ .keys ())
412405 ns ['methods' ], ns ['all_methods' ] = _get_members (
413- doc ,
406+ obj_type ,
414407 obj ,
415408 {'method' },
416409 config = config ,
417410 events = events ,
418- registry = registry ,
419411 include_public = {'__init__' },
420412 )
421413 ns ['attributes' ], ns ['all_attributes' ] = _get_members (
422- doc ,
414+ obj_type ,
423415 obj ,
424416 {'attribute' , 'property' },
425417 config = config ,
426418 events = events ,
427- registry = registry ,
428419 )
429420
430421 if modname is None or qualname is None :
431422 modname , qualname = _split_full_qualified_name (name )
432423
433- if doc . objtype in {'method' , 'attribute' , 'property' }:
424+ if obj_type in {'method' , 'attribute' , 'property' }:
434425 ns ['class' ] = qualname .rsplit ('.' , 1 )[0 ]
435426
436- if doc . objtype == 'class' :
427+ if obj_type == 'class' :
437428 shortname = qualname
438429 else :
439430 shortname = qualname .rsplit ('.' , 1 )[- 1 ]
@@ -443,19 +434,21 @@ def generate_autosummary_content(
443434 ns ['objname' ] = qualname
444435 ns ['name' ] = shortname
445436
446- ns ['objtype' ] = doc . objtype
437+ ns ['objtype' ] = obj_type
447438 ns ['underline' ] = len (name ) * '='
448439
449440 if template_name :
450441 return template .render (template_name , ns )
451442 else :
452- return template .render (doc . objtype , ns )
443+ return template .render (obj_type , ns )
453444
454445
455- def _skip_member (obj : Any , name : str , objtype : str , * , events : EventManager ) -> bool :
446+ def _skip_member (
447+ obj : Any , name : str , obj_type : _AutodocObjType , * , events : EventManager
448+ ) -> bool :
456449 try :
457450 return events .emit_firstresult (
458- 'autodoc-skip-member' , objtype , name , obj , False , {}
451+ 'autodoc-skip-member' , obj_type , name , obj , False , {}
459452 )
460453 except Exception as exc :
461454 logger .warning (
@@ -554,37 +547,35 @@ def _get_module_members(obj: Any, *, config: Config) -> dict[str, Any]:
554547
555548
556549def _get_all_members (
557- doc : type [ Documenter ] , obj : Any , * , config : Config
550+ obj_type : _AutodocObjType , obj : Any , * , config : Config
558551) -> dict [str , Any ]:
559- if doc . objtype == 'module' :
552+ if obj_type == 'module' :
560553 return _get_module_members (obj , config = config )
561- elif doc . objtype == 'class' :
554+ elif obj_type == 'class' :
562555 return _get_class_members (obj )
563556 return {}
564557
565558
566559def _get_members (
567- doc : type [ Documenter ] ,
560+ obj_type : _AutodocObjType ,
568561 obj : Any ,
569562 types : set [str ],
570563 * ,
571564 config : Config ,
572565 events : EventManager ,
573- registry : SphinxComponentRegistry ,
574566 include_public : Set [str ] = frozenset (),
575567 imported : bool = True ,
576568) -> tuple [list [str ], list [str ]]:
577569 items : list [str ] = []
578570 public : list [str ] = []
579571
580- all_members = _get_all_members (doc , obj , config = config )
572+ all_members = _get_all_members (obj_type , obj , config = config )
581573 for name , value in all_members .items ():
582574 obj_type = _get_documenter (value , obj )
583- documenter = registry .documenters [obj_type ]
584- if documenter .objtype in types :
575+ if obj_type in types :
585576 # skip imported members if expected
586577 if imported or getattr (value , '__module__' , None ) == obj .__name__ :
587- skipped = _skip_member (value , name , documenter . objtype , events = events )
578+ skipped = _skip_member (value , name , obj_type , events = events )
588579 if skipped is True :
589580 pass
590581 elif skipped is False :
@@ -737,7 +728,6 @@ def generate_autosummary_docs(
737728 qualname ,
738729 config = app .config ,
739730 events = app .events ,
740- registry = app .registry ,
741731 )
742732
743733 file_path = Path (path , filename_map .get (name , name ) + suffix )
0 commit comments