pipetteServer.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:firecloud_developer_toolkit 作者: broadinstitute 项目源码 文件源码
def __setstate__(self, state):
        # This code is run when an instance is created by unpickling, and not when it is initially created.
        self.__dict__.update(state)
        # roll back jobs that were sent into some state? make these transitions tolerant of being called twice in a row?
        # how do jobs get purged that finished?

        for jobId in self._status_by_jobId:
            directory_status = self._get_module_directory_status(jobId)
            if directory_status == self._status_by_jobId[jobId]:
                continue
            if directory_status in ['AboutToFail','AboutToAbort']:
                # just try again
                self._set_module_directory_status(jobId, jobId)
            elif directory_status in ['Pass','Fail', jobId]:
                pass
            elif directory_status in ['AboutToPass']:
                # move all the stuff back into the jobdir and try again
                jobdir = self._jobDirectory_by_jobId[jobId]
                moddir = self._moduleDirectory_by_jobId[jobId]
                if not os.path.exists(jobdir):
                    os.mkdir(jobdir)
                module_files = os.listdir(jobdir)
                for fn in module_files:
                    if fn.startswith('pipette.'):
                        continue
                    old_path = os.path.join(moddir, fn)
                    new_path = os.path.join(jobdir, fn)
                    os.rename(old_path, new_path)
                # _after_ the files are moved, update the status
                self._set_module_directory_status(jobId, jobId)
            else:
                raise Exception('Module directory left in an unrepairable state: ' + \
                                self._moduleDirectory_by_jobId[jobId])
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号