mapped_struct.py 文件源码

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

项目:sharedbuffers 作者: jampp 项目源码 文件源码
def merge(cls, parts, destfile = None, tempdir = None,
            discard_duplicates = False, discard_duplicate_keys = False):
        if destfile is None:
            destfile = tempfile.NamedTemporaryFile(dir = tempdir)

        dtype = cls.dtype
        basepos = destfile.tell()

        # Reserve space for the header
        write = destfile.write
        write(cls._Header.pack(0, 0))

        indexpos = basepos + cls._Header.size

        # Merge the indexes
        index = _merge_all([mapper.index for mapper in parts], dtype)

        write(buffer(index))
        nitems = len(index)

        finalpos = destfile.tell()
        if finalpos & 31:
            write("\x00" * (32 - (finalpos & 31)))
            finalpos = destfile.tell()

        destfile.seek(basepos)
        write(cls._Header.pack(nitems, indexpos - basepos))
        destfile.seek(finalpos)
        destfile.flush()

        rv = cls.map_file(destfile, basepos, size = finalpos - basepos)
        destfile.seek(finalpos)
        return rv
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号