in smallpond/execution/workqueue.py [0:0]
def _pop_unbuffered(self, count: int) -> List[WorkItem]:
items = []
dentries = self._get_entries()
if self.sort:
dentries = sorted(dentries, key=lambda entry: entry.name)
elif self.random:
random.shuffle(dentries)
for entry in dentries:
uuid_hex = uuid.uuid4().hex
filename = f"{entry.name}-DEQ{uuid_hex}"
dequeued_path = os.path.join(self.dequeue_dir, filename)
try:
os.rename(entry.path, dequeued_path)
except OSError as err:
logger.debug(f"cannot rename {entry.path} to {dequeued_path}: {err}")
if items:
break
else:
continue
items.append(load(dequeued_path, self.buffer_size))
if len(items) >= count:
break
return items