contract.py 文件源码

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

项目:shisetsu 作者: KixPanganiban 项目源码 文件源码
def receive(msgpack_string, contract_digest=None):
        """Unpack a msgpack string into the appropriate Contract type.
        If `contract_digest` is set, only returns the Response/Failure
        if its digest matches the `contract_digest`, and returns False if it
        doesn't.
        """
        payload = msgpack.unpackb(msgpack_string)
        if payload[0] == Contract.CONTRACT_REQUEST:
            contract = Request.load(payload)
        elif payload[0] == Contract.CONTRACT_RESPONSE:
            contract = Response.load(payload)
        elif payload[0] == Contract.CONTRACT_FAILURE:
            contract = Failure.load(payload)

        if contract_digest is not None and not isinstance(contract, Request):
            if contract.request_digest == contract_digest:
                return contract
            else:
                return False

        return contract
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号