From 76acc5e9992e3bc554dac678bf40be1d285a81e8 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 19 Apr 2022 12:17:21 +1000 Subject: PyDoc: fix including literal text immediately after function args Literal text from examples could be included directly after function arguments, this caused a warning with mis-matching indentation. --- doc/python_api/sphinx_doc_gen.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'doc/python_api') diff --git a/doc/python_api/sphinx_doc_gen.py b/doc/python_api/sphinx_doc_gen.py index b074ce77a39..c21a796c43a 100644 --- a/doc/python_api/sphinx_doc_gen.py +++ b/doc/python_api/sphinx_doc_gen.py @@ -573,7 +573,7 @@ def example_extract_docstring(filepath): line_no += 1 file.close() - return "\n".join(text), line_no, line_no_has_content + return "\n".join(text).rstrip("\n"), line_no, line_no_has_content def title_string(text, heading_char, double=False): @@ -593,9 +593,13 @@ def write_example_ref(ident, fw, example_id, ext="py"): filepath_full = os.path.join(os.path.dirname(fw.__self__.name), filepath) text, line_no, line_no_has_content = example_extract_docstring(filepath_full) + if text: + # Ensure a blank line, needed since in some cases the indentation doesn't match the previous line. + # which causes Sphinx not to warn about bad indentation. + fw("\n") + for line in text.split("\n"): + fw("%s\n" % (ident + line).rstrip()) - for line in text.split("\n"): - fw("%s\n" % (ident + line).rstrip()) fw("\n") # Some files only contain a doc-string. -- cgit v1.2.3