|
15 | 15 | member_order_option, |
16 | 16 | members_option, |
17 | 17 | ) |
18 | | -from sphinx.ext.autodoc._member_finder import _gather_members |
| 18 | +from sphinx.ext.autodoc._member_finder import _document_members |
19 | 19 | from sphinx.ext.autodoc._renderer import _add_content, _directive_header_lines |
20 | | -from sphinx.ext.autodoc._sentinels import ALL |
21 | 20 | from sphinx.ext.autodoc.importer import _load_object_by_name |
22 | 21 | from sphinx.ext.autodoc.mock import ismock |
23 | 22 | from sphinx.locale import _, __ |
@@ -471,46 +470,25 @@ def _generate( |
471 | 470 | self.add_content(more_content, indent=indent) |
472 | 471 |
|
473 | 472 | # document members, if possible |
474 | | - has_members = isinstance(self, ModuleDocumenter) or ( |
475 | | - isinstance(self, ClassDocumenter) and not self.props.doc_as_attr |
| 473 | + analyzer = self.analyzer |
| 474 | + if analyzer is not None: |
| 475 | + analyzer.analyze() |
| 476 | + _document_members( |
| 477 | + all_members=all_members, |
| 478 | + analyzer_order=analyzer.tagorder if analyzer is not None else {}, |
| 479 | + attr_docs=analyzer.attr_docs if analyzer is not None else {}, |
| 480 | + config=self.config, |
| 481 | + current_document=self._current_document, |
| 482 | + directive=self.directive, |
| 483 | + events=self._events, |
| 484 | + get_attr=self.get_attr, |
| 485 | + indent=indent, |
| 486 | + name=self.name, |
| 487 | + options=self.options, |
| 488 | + props=self.props, |
| 489 | + real_modname=self.real_modname, |
| 490 | + registry=self.env._registry, |
476 | 491 | ) |
477 | | - if has_members: |
478 | | - want_all = bool( |
479 | | - all_members |
480 | | - or self.options.inherited_members |
481 | | - or self.options.members is ALL |
482 | | - ) |
483 | | - analyzer = self.analyzer |
484 | | - if analyzer is not None: |
485 | | - analyzer.analyze() |
486 | | - member_documenters = _gather_members( |
487 | | - want_all=want_all, |
488 | | - indent=indent, |
489 | | - analyzer_order=analyzer.tagorder if analyzer is not None else {}, |
490 | | - attr_docs=analyzer.attr_docs if analyzer is not None else {}, |
491 | | - config=self.config, |
492 | | - current_document=self._current_document, |
493 | | - directive=self.directive, |
494 | | - events=self._events, |
495 | | - get_attr=self.get_attr, |
496 | | - name=self.name, |
497 | | - options=self.options, |
498 | | - props=self.props, |
499 | | - registry=self.env._registry, |
500 | | - ) |
501 | | - |
502 | | - # for implicit module members, check __module__ to avoid |
503 | | - # documenting imported objects |
504 | | - members_check_module = bool( |
505 | | - isinstance(self, ModuleDocumenter) |
506 | | - and want_all |
507 | | - and (self.options.ignore_module_all or self.props.all is None) |
508 | | - ) |
509 | | - _document_members( |
510 | | - member_documenters=member_documenters, |
511 | | - real_modname=self.real_modname, |
512 | | - members_check_module=members_check_module, |
513 | | - ) |
514 | 492 |
|
515 | 493 |
|
516 | 494 | class ModuleDocumenter(Documenter): |
@@ -649,28 +627,3 @@ def autodoc_attrgetter( |
649 | 627 | return func(obj, name, *defargs) |
650 | 628 |
|
651 | 629 | return safe_getattr(obj, name, *defargs) |
652 | | - |
653 | | - |
654 | | -def _document_members( |
655 | | - *, |
656 | | - member_documenters: list[tuple[Documenter, bool]], |
657 | | - real_modname: str, |
658 | | - members_check_module: bool, |
659 | | -) -> None: |
660 | | - """Generate reST for member documentation. |
661 | | -
|
662 | | - If *all_members* is True, document all members, else those given by |
663 | | - *self.options.members*. |
664 | | - """ |
665 | | - for documenter, is_attr in member_documenters: |
666 | | - assert documenter.props.module_name |
667 | | - # We can directly call ._generate() since the documenters |
668 | | - # already called ``_load_object_by_name()`` before. |
669 | | - # |
670 | | - # Note that those two methods above do not emit events, so |
671 | | - # whatever objects we deduced should not have changed. |
672 | | - documenter._generate( |
673 | | - all_members=True, |
674 | | - real_modname=real_modname, |
675 | | - check_module=members_check_module and not is_attr, |
676 | | - ) |
0 commit comments