aboutsummaryrefslogtreecommitdiff
path: root/quality_control/standard_error.py
blob: 00b1ac6d020452f241a08d93f94c05ddbc0483dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
"""Contain logic for checking standard error files"""
from typing import Union

from .utils import cell_error
from .errors import InvalidValue

def invalid_value(filename: str,
                  line_number: int,
                  column_number: int,
                  val: str) -> Union[InvalidValue, None]:
    """
    Returns a `quality_control.errors.InvalidValue` object in the case where
    `val` is not a valid input for standard error files, otherwise, it returns
    `None`.
    """
    return cell_error(
        r"^([0-9]+\.[0-9]{6,}|[0-9]+\.?0*)$", val, filename=filename,
        line=line_number, column=column_number, value=val, message=(
            f"Invalid value '{val}'. "
            "Expected string representing a number with at least six "
            "decimal places."))