def __next__()

in data.py [0:0]


    def __next__(self):
        while True:
            try:
                if (self._done.is_set()
                    or (self._feeder_queue.empty() and
                        not any(x.is_alive() for x in self._workers)
                        and self._data_queue.empty())):
                    self._done.set()
                    raise StopIteration
                data = self._data_queue.get(timeout=1)
                self._ndone += 1
                if (self._ndone % 10) == 0 and self._ndone + len(self._workers) < self._size and self._data_queue.empty():
                    logging.warn("Data queue is empty... Use more dataloading threads!")
                if (self._ndone % min(self._size // 10, 500)) == 0:
                    logging.info("Done {} / {}".format(self._ndone, self._size))
                logging.debug("Data queue has approx size: {}".format(self._data_queue.qsize()))
                return self.postprocess(data)
            except queue.Empty:
                pass