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

from .errors import InvalidValue

def invalid_value(line_number: int, column_number: int, val: str) -> Union[
        InvalidValue, None]:
    """Return an `InvalidValue` object if `val` is not a valid "averages"
    value."""
    if re.search(r"^[0-9]+\.[0-9]{3}$", val):
        return None
    if re.search(r"^0\.0+$", val) or re.search("^0+$"):
        return None
    return InvalidValue(
        line_number, column_number, val, (
            f"Invalid value '{val}'. "
            "Expected string representing a number with exactly three decimal "
            "places."))