"""Module for defining exceptions."""fromcollections.abcimportCallable
[docs]classLoopError(ValueError):""" Error raised when a graph is not loop-free. """def__init__(self,msg:str="The graph needs to be loop-free.",*args,**kwargs):super().__init__(msg,*args,**kwargs)
[docs]classNotSupportedValueError(ValueError):""" Error raised when an input value is not supported. """def__init__(self,wrong_param,parameter_name:str,method:Callable=None,msg:str=None,*args,**kwargs,):ifmsgisnotNone:super().__init__(msg,*args,**kwargs)else:msg_str=(f"The specified value of the `{parameter_name}` "+f"parameter is '{wrong_param}', "+"which is not supported!\n")ifmethodisnotNone:msg_str+=f"Call `help({method.__qualname__})` for further information"super().__init__(msg_str,*args,**kwargs)