def _write_transaction(self, fp, records, index): fp.seek(0, 2) for i, (oid, record) in enumerate(records): full_record = self._disk_format(record) index[oid] = fp.tell() fp.write(p32(len(full_record))) fp.write(full_record) if i % self._PACK_INCREMENT == 0: yield None fp.write(p32(0)) # terminator
def test_check_p32_u32(self): for x in range(3): assert len(p32(x)) == 4 assert x == u32(p32(x))
def pack_record(oid, data, refs): """(oid:str, data:str, refs:str) -> record:str """ return ''.join([oid, p32(len(data)), data, refs])