mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
refactor: autodoc: Add DataDocumenter.get_module_comment()
Similar to AttributeDocumenter.get_attribute_comment(), add a helper method DataDocumenter.get_module_comment()
This commit is contained in:
@@ -1914,8 +1914,32 @@ class DataDocumenter(GenericAliasMixin, NewTypeMixin, TypeVarMixin,
|
||||
return self.get_attr(self.parent or self.object, '__module__', None) \
|
||||
or self.modname
|
||||
|
||||
def get_module_comment(self, attrname: str) -> Optional[List[str]]:
|
||||
try:
|
||||
analyzer = ModuleAnalyzer.for_module(self.modname)
|
||||
analyzer.analyze()
|
||||
key = ('', attrname)
|
||||
if key in analyzer.attr_docs:
|
||||
return list(analyzer.attr_docs[key])
|
||||
except PycodeError:
|
||||
pass
|
||||
|
||||
return None
|
||||
|
||||
def get_doc(self, encoding: str = None, ignore: int = None) -> List[List[str]]:
|
||||
# Check the variable has a docstring-comment
|
||||
comment = self.get_module_comment(self.objpath[-1])
|
||||
if comment:
|
||||
return [comment]
|
||||
else:
|
||||
return super().get_doc(encoding, ignore)
|
||||
|
||||
def add_content(self, more_content: Optional[StringList], no_docstring: bool = False
|
||||
) -> None:
|
||||
# Disable analyzing variable comment on Documenter.add_content() to control it on
|
||||
# DataDocumenter.add_content()
|
||||
self.analyzer = None
|
||||
|
||||
if not more_content:
|
||||
more_content = StringList()
|
||||
|
||||
|
Reference in New Issue
Block a user