Skip to content

Commit 4db1734

Browse files
committed
test fix
1 parent 9a4b91d commit 4db1734

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

pyiceberg/table/puffin.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -219,14 +219,16 @@ def finish(self) -> bytes:
219219
for blob_payload in self._blob_payloads:
220220
payload_buffer.write(blob_payload)
221221

222-
# Set offsets and lengths in metadata
223-
current_offset = 4 # Start after file magic
222+
updated_blobs_metadata: List[PuffinBlobMetadata] = []
223+
current_offset = 4 # Start after file magic (4 bytes)
224224
for i, blob_payload in enumerate(self._blob_payloads):
225-
self._blobs[i].offset = current_offset
226-
self._blobs[i].length = len(blob_payload)
225+
original_metadata_dict = self._blobs[i].model_dump(by_alias=True, exclude_none=True)
226+
original_metadata_dict["offset"] = current_offset
227+
original_metadata_dict["length"] = len(blob_payload)
228+
updated_blobs_metadata.append(PuffinBlobMetadata(**original_metadata_dict))
227229
current_offset += len(blob_payload)
228230

229-
footer = Footer(blobs=self._blobs)
231+
footer = Footer(blobs=updated_blobs_metadata)
230232
footer_payload_bytes = footer.model_dump_json(by_alias=True, exclude_none=True).encode("utf-8")
231233

232234
# Final assembly

tests/table/test_puffin.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import pytest
2020
from pyroaring import BitMap
2121

22-
from pyiceberg.table.puffin import _deserialize_bitmap, PuffinFile, PuffinWriter
22+
from pyiceberg.table.puffin import _deserialize_bitmap, PuffinFile, PuffinWriter, PROPERTY_REFERENCED_DATA_FILE
2323

2424

2525
def _open_file(file: str) -> bytes:
@@ -94,11 +94,11 @@ def test_puffin_round_trip():
9494
assert len(reader.footer.blobs) == 2
9595

9696
blob1_meta = reader.footer.blobs[0]
97-
assert blob1_meta.properties[PuffinFile.PROPERTY_REFERENCED_DATA_FILE] == file1_path
97+
assert blob1_meta.properties[PROPERTY_REFERENCED_DATA_FILE] == file1_path
9898
assert blob1_meta.properties["cardinality"] == str(len(deletions1))
9999

100100
blob2_meta = reader.footer.blobs[1]
101-
assert blob2_meta.properties[PuffinFile.PROPERTY_REFERENCED_DATA_FILE] == file2_path
101+
assert blob2_meta.properties[PROPERTY_REFERENCED_DATA_FILE] == file2_path
102102
assert blob2_meta.properties["cardinality"] == str(len(deletions2))
103103

104104
# Assert the content of deletion vectors

0 commit comments

Comments
 (0)