from abc import ABCMeta, abstractmethod from six import add_metaclass @add_metaclass(ABCMeta) class InitDataInterface(object): """ Interface that represents all data store interactions required by __init__. """ @abstractmethod def is_app_repository(self, namespace_name, repository_name): """ Args: namespace_name: namespace or user repository_name: repository Returns: Boolean """ pass @abstractmethod def repository_is_public(self, namespace_name, repository_name): """ Args: namespace_name: namespace or user repository_name: repository Returns: Boolean """ pass @abstractmethod def log_action(self, kind, namespace_name, repository_name, performer, ip, metadata): """ Args: kind: type of log user_or_orgname: name of user or organization performer: user doing the action ip: originating ip metadata: metadata repository: repository the action is related to Returns: None """ pass