diff options
author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2020-09-12 16:04:41 +0900 |
---|---|---|
committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2020-09-12 16:04:41 +0900 |
commit | fd3d654c17874d4cbffbd8e9379728f83a31b30b (patch) | |
tree | 67983225df23f8f0d224576a680f57c01e912800 | |
parent | 31f26a0bbf5e4e53b340e10464fc7c4cca96f12a (diff) | |
download | sphinx-git-fd3d654c17874d4cbffbd8e9379728f83a31b30b.tar.gz |
Fix #8190: autodoc: parse error for docstring w/o ending blank lines
autodoc raises a parsing error if some extension generates a docstring
not having blank lines at the tail. This appends a blank line if
generated one does not contain it.
-rw-r--r-- | CHANGES | 2 | ||||
-rw-r--r-- | sphinx/ext/autodoc/__init__.py | 5 | ||||
-rw-r--r-- | tests/test_ext_autodoc_events.py | 3 |
3 files changed, 9 insertions, 1 deletions
@@ -19,6 +19,8 @@ Bugs fixed * #8085: i18n: Add support for having single text domain * #8143: autodoc: AttributeError is raised when False value is passed to autodoc_default_options +* #8190: autodoc: parsing error is raised if some extension replaces docstring + by string not ending with blank lines * #8093: The highlight warning has wrong location in some builders (LaTeX, singlehtml and so on) diff --git a/sphinx/ext/autodoc/__init__.py b/sphinx/ext/autodoc/__init__.py index ed02c2c90..23fb43a4d 100644 --- a/sphinx/ext/autodoc/__init__.py +++ b/sphinx/ext/autodoc/__init__.py @@ -535,6 +535,11 @@ class Documenter: self.env.app.emit('autodoc-process-docstring', self.objtype, self.fullname, self.object, self.options, docstringlines) + + if docstringlines and docstringlines[-1] != '': + # append a blank line to the end of the docstring + docstringlines.append('') + yield from docstringlines def get_sourcename(self) -> str: diff --git a/tests/test_ext_autodoc_events.py b/tests/test_ext_autodoc_events.py index 4e8348abc..7ddc952ab 100644 --- a/tests/test_ext_autodoc_events.py +++ b/tests/test_ext_autodoc_events.py @@ -28,7 +28,8 @@ def test_process_docstring(app): '.. py:function:: func()', ' :module: target.process_docstring', '', - ' my docstring' + ' my docstring', + '', ] |