Skip to content

Commit

Permalink
Fix #8190: autodoc: parse error for docstring w/o ending blank lines
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
tk0miya committed Sep 12, 2020
1 parent 31f26a0 commit fd3d654
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 1 deletion.
2 changes: 2 additions & 0 deletions CHANGES
Expand Up @@ -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)

Expand Down
5 changes: 5 additions & 0 deletions sphinx/ext/autodoc/__init__.py
Expand Up @@ -535,6 +535,11 @@ def process_doc(self, docstrings: List[List[str]]) -> Iterator[str]:
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:
Expand Down
3 changes: 2 additions & 1 deletion tests/test_ext_autodoc_events.py
Expand Up @@ -28,7 +28,8 @@ def on_process_docstring(app, what, name, obj, options, lines):
'.. py:function:: func()',
' :module: target.process_docstring',
'',
' my docstring'
' my docstring',
'',
]


Expand Down

0 comments on commit fd3d654

Please sign in to comment.