from abc import ABCMeta, abstractmethod from collections import namedtuple from six import add_metaclass USER_FIELDS = ["uuid", "username", "email", "given_name", "family_name", "company", "location"] class User(namedtuple("User", USER_FIELDS)): """ User represents a user. """ @add_metaclass(ABCMeta) class EndpointsCommonDataInterface(object): """ Interface that represents all data store interactions required by the common endpoints lib. """ @abstractmethod def get_user(self, user_uuid): """ Returns the User matching the given uuid, if any or None if none. """ @abstractmethod def get_namespace_uuid(self, namespace_name): """ Returns the uuid of the Namespace with the given name, if any. """