"""Hold exceptions for QC package""" from collections import namedtuple class InvalidCellValue(Exception): """Raised when a function encounters an invalid value""" def __init__(self, *args): super().__init__(*args) class InvalidHeaderValue(Exception): """Raised when a header contains values not in the reference file.""" def __init__(self, *args): super().__init__(*args) class DuplicateHeader(Exception): """Raised when a header contains 2 similar headers.""" def __init__(self, *args): super().__init__(*args) class ParseError(Exception): """Raised if any of the above exceptions are raised""" def __init__(self, *args): super().__init__(*args) InvalidValue = namedtuple( "InvalidValue", ("line", "column", "value", "message")) DuplicateHeading = namedtuple( "DuplicateHeading", ("line", "columns", "heading", "message"))