""" Collection of public exceptions raised by this library """ class LambdaBuilderError(Exception): MESSAGE = "" def __init__(self, **kwargs): Exception.__init__(self, self.MESSAGE.format(**kwargs)) class UnsupportedManifestError(LambdaBuilderError): MESSAGE = "A builder for the given capabilities '{capabilities}' was not found" class MisMatchRuntimeError(LambdaBuilderError): MESSAGE = ( "{language} executable found in your path does not " "match runtime. " "\n Expected version: {required_runtime}, Found a different version at {runtime_path}. " "\n Possibly related: https://github.com/awslabs/aws-lambda-builders/issues/30" ) class RuntimeValidatorError(LambdaBuilderError): """ Raise when runtime is not supported or when runtime is not compatible with architecture """ MESSAGE = "Runtime validation error for {runtime}" class UnsupportedRuntimeError(RuntimeValidatorError): """ Raise when runtime is not supported """ MESSAGE = "Runtime {runtime} is not supported" class UnsupportedArchitectureError(RuntimeValidatorError): """ Raise when runtime does not support architecture """ MESSAGE = "Architecture {architecture} is not supported for runtime {runtime}" class WorkflowNotFoundError(LambdaBuilderError): """ Raised when a workflow matching the given capabilities was not found """ MESSAGE = ( "Unable to find a workflow matching given capability: " "{language}, {dependency_manager}, {application_framework}" ) class WorkflowFailedError(LambdaBuilderError): """ Raised when the build failed, for well-known cases """ MESSAGE = "{workflow_name}:{action_name} - {reason}" class WorkflowUnknownError(LambdaBuilderError): """ Raised when the build ran into an unexpected error """ MESSAGE = "{workflow_name}:{action_name} - {reason}"