from abc import ABCMeta, abstractmethod

from six import add_metaclass


@add_metaclass(ABCMeta)
class GCWorkerDataInterface(object):
  """
  Interface that represents all data store interactions required by the GC worker.
  """

  @abstractmethod
  def perform_garbage_collection(self):
    """ Performs garbage collection on a single repository, if any can be found with garbage. """
    pass