Warning

This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.

Source code for galaxy.tool_util.linters.help

"""This module contains a linting function for a tool's help."""
from galaxy.util import (
    rst_to_html,
    unicodify,
)


[docs]def lint_help(tool_xml, lint_ctx): """Ensure tool contains exactly one valid RST help block.""" root = tool_xml.getroot() helps = root.findall("help") if len(helps) > 1: lint_ctx.error("More than one help section found, behavior undefined.") return if len(helps) == 0: lint_ctx.warn("No help section found, consider adding a help section to your tool.") return help = helps[0].text or '' if not help.strip(): lint_ctx.warn("Help section appears to be empty.") return lint_ctx.valid("Tool contains help section.") invalid_rst = rst_invalid(help) if "TODO" in help: lint_ctx.warn("Help contains TODO text.") if invalid_rst: lint_ctx.warn("Invalid reStructuredText found in help - [%s]." % invalid_rst) else: lint_ctx.valid("Help contains valid reStructuredText.")
[docs]def rst_invalid(text): """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 = False try: rst_to_html(text, error=True) except Exception as e: invalid_rst = unicodify(e) return invalid_rst