def enqueue(self, i):
        logger.log(SUBDEBUG, "Queueing stage %d", i)
        self.runnable.add(i)
        for f in self.stages[i].runnable_hooks:
            f()
        # keep track of the memory requirements of the runnable jobs
        self.mem_req_for_runnable.append(self.stages[i].mem)
If stage cannot be run due to insufficient mem/procs, executor returns it to the runnable set
dataset/ETHPy150Open Mouse-Imaging-Centre/pydpiper/pydpiper/pipeline.py/Pipeline.enqueue