From 8f377580338df129d907c9d299469e61084d6b6d Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 3 Jan 2011 21:00:08 +0100 Subject: [PATCH] #567: Emit the ``autodoc-process-docstring`` event even for objects without a docstring so that it can add content. --- CHANGES | 3 +++ sphinx/ext/autodoc.py | 11 ++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index 08c3fd2c0..a60a9f727 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ Release 1.0.6 (in development) ============================== +* #567: Emit the ``autodoc-process-docstring`` event even for objects + without a docstring so that it can add content. + * #565: In the LaTeX builder, not only literal blocks require different table handling, but also quite a few other list-like block elements. diff --git a/sphinx/ext/autodoc.py b/sphinx/ext/autodoc.py index f2f872ef7..accf8e282 100644 --- a/sphinx/ext/autodoc.py +++ b/sphinx/ext/autodoc.py @@ -457,6 +457,11 @@ class Documenter(object): if not no_docstring: encoding = self.analyzer and self.analyzer.encoding docstrings = self.get_doc(encoding) + if not docstrings: + # append at least a dummy docstring, so that the event + # autodoc-process-docstring is fired and can add some + # content if desired + docstrings.append([]) for i, line in enumerate(self.process_doc(docstrings)): self.add_line(line, sourcename, i) @@ -922,9 +927,9 @@ class ClassDocumenter(ModuleLevelDocumenter): content = self.env.config.autoclass_content docstrings = [] - docstring = self.get_attr(self.object, '__doc__', None) - if docstring: - docstrings.append(docstring) + attrdocstring = self.get_attr(self.object, '__doc__', None) + if attrdocstring: + docstrings.append(attrdocstring) # for classes, what the "docstring" is can be controlled via a # config value; the default is only the class docstring