utils.py 文件源码

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

项目:nucypher-kms 作者: nucypher 项目源码 文件源码
def __call__(self, splittable, return_remainder=False, msgpack_remainder=False):
        if not any((return_remainder, msgpack_remainder)) and len(self) != len(splittable):
            raise ValueError(
                "Wrong number of bytes to constitute message types {} - need {}, got {} \n Did you mean to return the remainder?".format(
                    self.message_types, len(self), len(splittable)))
        if len(self) > len(splittable):
            raise ValueError(
                "Not enough bytes to constitute message types {} - need {}, got {}".format(self.message_types,
                                                                                           len(self),
                                                                                           len(splittable)))
        cursor = 0
        message_objects = []

        for message_type in self.message_types:
            message_class, message_length = self.get_message_meta(message_type)
            expected_end_of_object_bytes = cursor + message_length
            bytes_for_this_object = splittable[cursor:expected_end_of_object_bytes]
            message = message_class(bytes_for_this_object)

            message_objects.append(message)
            cursor = expected_end_of_object_bytes

        remainder = splittable[cursor:]

        if msgpack_remainder:
            message_objects.append(msgpack.loads(remainder))
        elif return_remainder:
            message_objects.append(remainder)

        return message_objects
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号