in hype/graph_dataset.pyx [0:0]
def next(self):
'''
Python visible function for indexing the dataset. This first
allocates a tensor, and then modifies it in place with `_getitem`
Args:
idx (int): index into the dataset
'''
size = self.queue.qsize()
if size == 0 and all([not(t.is_alive()) for t in self.threads]):
# No more items in queue and we've joined with all worker threads
raise StopIteration
item = self.queue.get()
if isinstance(item, int):
self.threads[item].join() # Thread `item` is finished, join with it...
return self.next() # try again...
return item