import abc
import collections

Batch = collections.namedtuple(
    'Batch',
    ['observations', 'actions', 'rewards', 'masks', 'next_observations'])


class Dataset(abc.ABC):
    @abc.abstractmethod
    def sample(self, batch_size: int) -> Batch:
        pass
