"""Common exceptions raised by the program.""" from typing import Union, List class InvalidKeyError(Exception): """Thrown when a config file contains an invalid key.""" def __init__(self, keys: Union[str, List[str]]): """Create a new InvalidKeyError object with the given key. Args: keys: the invalid key(s) """ if type(keys) == str: keys = [keys] self.message = "Invalid key(s): {}".format(", ".join(keys)) super().__init__() class MissingKeyError(Exception): """Thrown when a required key is missing from a config.""" def __init__(self, keys: Union[str, List[str]]): """Create a new MissingKeyError object with the given key. Args: keys: the invalid key(s) """ if type(keys) == str: keys = [keys] self.message = "Missing key(s): {}".format(", ".join(keys)) super().__init__()