Unverified Commit 5fd1141c authored by Marius van den Beek's avatar Marius van den Beek Committed by GitHub
Browse files

Merge pull request #15457 from bernt-matthias/topic/rst_invalid

[22.05] restore rst_invalid function
parents ca1d2f57 e0ab580e
Loading
Loading
Loading
Loading
+20 −5
Original line number Diff line number Diff line
"""This module contains a linting function for a tool's help."""

from typing import Union

from galaxy.util import (
    rst_to_html,
    unicodify,
@@ -30,10 +33,22 @@ def lint_help(tool_xml, lint_ctx):
    if "TODO" in help_text:
        lint_ctx.warn("Help contains TODO text.", node=helps[0])

    invalid_rst = rst_invalid(help_text)
    if invalid_rst:
        lint_ctx.warn(f"Invalid reStructuredText found in help - [{invalid_rst}].", node=helps[0])
    else:
        lint_ctx.valid("Help contains valid reStructuredText.", node=helps[0])


def rst_invalid(text: str) -> Union[bool, str]:
    """
    Predicate to determine if text is invalid reStructuredText.
    Return False if the supplied text is valid reStructuredText or
    a string indicating the problem.
    """
    invalid_rst: Union[bool, str] = False
    try:
        rst_to_html(help_text, error=True)
        rst_to_html(text, error=True)
    except Exception as e:
        lint_ctx.warn(f"Invalid reStructuredText found in help - [{unicodify(e)}].", node=helps[0])
        return

    lint_ctx.valid("Help contains valid reStructuredText.", node=helps[0])
        invalid_rst = unicodify(e)
    return invalid_rst