def __iter__()

in awsio/python/lib/io/s3/s3dataset.py [0:0]


    def __iter__(self):
        shufbuf = []
        try:
            dataset_iter = iter(self.dataset)
            for _ in range(self.buffer_size):
                shufbuf.append(next(dataset_iter))
        except StopIteration:
            self.buffer_size = len(shufbuf)

        try:
            while True:
                try:
                    if self.buffer_size == 0:
                        break
                    evict_idx = random.randint(0, self.buffer_size - 1)
                    yield shufbuf.pop(evict_idx)
                    item = next(dataset_iter)
                    shufbuf.append(item)
                except StopIteration:
                    break
            while len(shufbuf) > 0:
                evict_idx = random.randint(0, len(shufbuf) - 1)
                yield shufbuf.pop(evict_idx)
        except GeneratorExit: # pragma: no cover
            pass