[Bf-blender-cvs] [76acc5e9992] master: PyDoc: fix including literal text immediately after function args

Campbell Barton noreply at git.blender.org
Tue Apr 19 04:32:58 CEST 2022


Commit: 76acc5e9992e3bc554dac678bf40be1d285a81e8
Author: Campbell Barton
Date:   Tue Apr 19 12:17:21 2022 +1000
Branches: master
https://developer.blender.org/rB76acc5e9992e3bc554dac678bf40be1d285a81e8

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.

===================================================================

M	doc/python_api/sphinx_doc_gen.py

===================================================================

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.



More information about the Bf-blender-cvs mailing list