From 704d1feca14e6fa292eb38b0d2a1c33c7414d508 Mon Sep 17 00:00:00 2001 From: Sylvain Gugger <35901082+sgugger@users.noreply.github.com> Date: Tue, 11 Jan 2022 11:45:39 -0500 Subject: [PATCH] Doc styler tip (#15105) * Add new lines before/after tips * Check end of lines --- utils/style_doc.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/utils/style_doc.py b/utils/style_doc.py index 4f44929bd4..da70c9a2c3 100644 --- a/utils/style_doc.py +++ b/utils/style_doc.py @@ -41,7 +41,8 @@ _re_args = re.compile("^\s*(Args?|Arguments?|Params?|Parameters?):\s*$") _re_returns = re.compile("^\s*Returns?:\s*$") # Matches the special tag to ignore some paragraphs. _re_doc_ignore = re.compile(r"(\.\.|#)\s*docstyle-ignore") - +# Re pattern that matches , and blocks. +_re_tip = re.compile("^\s*|\s+warning={true}>)\s*$") DOCTEST_PROMPTS = [">>>", "..."] @@ -275,6 +276,8 @@ def style_docstring(docstring, max_len): new_paragraph = new_paragraph or list_search is not None # Code block beginning new_paragraph = new_paragraph or code_search is not None + # Beginning/end of tip + new_paragraph = new_paragraph or _re_tip.search(line) # In this case, we treat the current paragraph if not in_code and new_paragraph and current_paragraph is not None and len(current_paragraph) > 0: @@ -318,6 +321,14 @@ def style_docstring(docstring, max_len): elif _re_args.search(line): new_lines.append(line) param_indent = find_indent(lines[idx + 1]) + elif _re_tip.search(line): + # Add a new line before if not present + if not is_empty_line(new_lines[-1]): + new_lines.append("") + new_lines.append(line) + # Add a new line after if not present + if idx < len(lines) - 1 and not is_empty_line(lines[idx + 1]): + new_lines.append("") elif current_paragraph is None or find_indent(line) != current_indent: indent = find_indent(line) # Special behavior for parameters intros.