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.verify.asserts.tabular

import re
from typing import (
    Union,
    Optional,
)

from ._util import _assert_number


[docs]def get_first_line(output: str, comment: str) -> str: """ get the first non-comment and non-empty line """ if comment != "": match = re.search(f"^([^{comment}].*)$", output, flags=re.MULTILINE) else: match = re.search("^(.+)$", output, flags=re.MULTILINE) if match is None: return "" else: return match.group(1)
[docs]def assert_has_n_columns( output: str, n: Optional[Union[int, str]] = None, delta: Union[int, str] = 0, min: Optional[Union[int, str]] = None, max: Optional[Union[int, str]] = None, sep: str = "\t", comment: str = "", negate: Union[bool, str] = False, ) -> None: """Asserts the tabular output contains n columns. The optional sep argument specifies the column seperator used to determine the number of columns. The optional comment argument specifies comment characters""" first_line = get_first_line(output, comment) n_columns = len(first_line.split(sep)) _assert_number( n_columns, n, delta, min, max, negate, "{expected} {n}+-{delta} columns in output", "{expected} the number of columns in output to be in [{min}:{max}]", )