"""Example use cases package.""" class UseCase(object): """Abstract use case.""" def execute(self): """Execute use case handling.""" raise NotImplementedError() class SignupUseCase(object): """Sign up use cases registers users.""" def __init__(self, email_sender): """Initializer.""" self.email_sender = email_sender def execute(self, email): """Execute use case handling.""" print('Sign up user {0}'.format(email)) self.email_sender.send(email, 'Welcome, "{}"'.format(email))