in aws_lambda_builders/workflow.py [0:0]
def __new__(mcs, name, bases, class_dict):
"""
Add the builder to registry when loading the class
"""
cls = type.__new__(mcs, name, bases, class_dict)
# We don't want to register the base classes, so we simply return here.
# Also, skip further steps if the class is marked for testing
if cls.__name__ == "BaseWorkflow" or cls.__TESTING__:
return cls
# Validate class variables
# All classes must provide a name
if not isinstance(cls.NAME, six.string_types):
raise ValueError("Workflow must provide a valid name")
# All workflows must express their capabilities
if not isinstance(cls.CAPABILITY, Capability):
raise ValueError("Workflow '{}' must register valid capabilities".format(cls.NAME))
LOG.debug("Registering workflow '%s' with capability '%s'", cls.NAME, cls.CAPABILITY)
DEFAULT_REGISTRY[cls.CAPABILITY] = cls
return cls