37 lines
950 B
Python
37 lines
950 B
Python
|
"""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__()
|