toilpromise.py 文件源码

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

项目:hgvm-builder 作者: BD2KGenomics 项目源码 文件源码
def promise_then_job(job, promise, prev_promise_returned):
    """
    Toil job that runs a promise created with a then handler instead of an
    executor.

    Takes the promise and the (resolve value, reject value) pair from the
    previous promise.

    Returns the promise's success result and error, as a pair.
    """

    then_handler = dill.loads(promise.then_dill)

    resolved, rejected = prev_promise_returned

    if rejected is None:
        # Actually run this child promise

        try:
            # Get the result from the then handler and resolve with it
            result = then_handler(resolved)
            promise.handle_resolve(job, result)
        except Exception as e:
            # Reject with an error if there is one
            Logger.error("".join(traceback.format_exception(*sys.exc_info())))
            promise.handle_reject(job, e)

    else:
        # Parent promise rejected so we should not run
        # Bubble up the error
        promise.handle_reject(job, rejected)

    return (promise.result, promise.err)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号