"""Provide exception classes"""
class PipenException(Exception):DOCS
"""Base exception class for pipen"""
class PipenSetDataError(PipenException, ValueError):DOCS
"""When trying to set input data to processes with input_data already set
using Pipen.set_data()."""
class ProcInputTypeError(PipenException, TypeError):DOCS
"""When an unsupported input type is provided"""
class ProcInputKeyError(PipenException, KeyError):DOCS
"""When an unsupported input key is provided"""
class ProcInputValueError(PipenException, ValueError):DOCS
"""When an unsupported input value is provided"""
class ProcScriptFileNotFound(PipenException, FileNotFoundError):DOCS
"""When script file specified as 'file://' cannot be found"""
class ProcOutputNameError(PipenException, NameError):DOCS
"""When no name or malformatted output is provided"""
class ProcOutputTypeError(PipenException, TypeError):DOCS
"""When an unsupported output type is provided"""
class ProcOutputValueError(PipenException, ValueError):DOCS
"""When a malformatted output value is provided"""
class ProcDependencyError(PipenException):DOCS
"""When there is something wrong the process dependencies"""
class NoSuchSchedulerError(PipenException):DOCS
"""When specified scheduler cannot be found"""
class WrongSchedulerTypeError(PipenException, TypeError):DOCS
"""When specified scheduler is not a subclass of Scheduler"""
class NoSuchTemplateEngineError(PipenException):DOCS
"""When specified template engine cannot be found"""
class WrongTemplateEnginTypeError(PipenException, TypeError):DOCS
"""When specified tempalte engine is not a subclass of Scheduler"""
class TemplateRenderingError(PipenException):DOCS
"""Failed to render a template"""
class ConfigurationError(PipenException):DOCS
"""When something wrong set as configuration"""
class PipenOrProcNameError(PipenException):DOCS
""" "When more than one processes are sharing the same workdir"""