Skip to content

Commit e1893a0

Browse files
committed
refactor: expect writer to be closed when creating manifest files
1 parent ffbc160 commit e1893a0

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

pyiceberg/manifest.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -806,7 +806,7 @@ def __exit__(
806806
traceback: Optional[TracebackType],
807807
) -> None:
808808
self._close_current_writer()
809-
self.closed = True
809+
self._closed = True
810810

811811
def _get_current_writer(self) -> ManifestWriter:
812812
if self._should_roll_to_new_file():
@@ -833,8 +833,8 @@ def _close_current_writer(self):
833833
self._current_file_rows = 0
834834

835835
def to_manifest_files(self) -> list[ManifestFile]:
836-
self._close_current_writer()
837-
self._closed = True
836+
if not self._closed:
837+
raise RuntimeError("Cannot create manifest files from unclosed writer")
838838
return self._manifest_files
839839

840840
def add_entry(self, entry: ManifestEntry) -> RollingManifestWriter:

tests/utils/test_manifest.py

+8-5
Original file line numberDiff line numberDiff line change
@@ -539,11 +539,12 @@ def supplier() -> Generator[ManifestWriter, None, None]:
539539
) as writer:
540540
for entry in manifest_entries:
541541
writer.add_entry(entry)
542-
manifest_files = writer.to_manifest_files()
543-
assert len(manifest_files) == expected_number_of_files
544-
with pytest.raises(RuntimeError):
545-
# It is already closed
546-
writer.add_entry(manifest_entries[0])
542+
543+
manifest_files = writer.to_manifest_files()
544+
assert len(manifest_files) == expected_number_of_files
545+
with pytest.raises(RuntimeError):
546+
# It is already closed
547+
writer.add_entry(manifest_entries[0])
547548

548549

549550
@pytest.mark.parametrize("format_version", [1, 2])
@@ -613,3 +614,5 @@ def test_write_manifest_list(
613614
assert entry.file_sequence_number == 0 if format_version == 1 else 3
614615
assert entry.snapshot_id == 8744736658442914487
615616
assert entry.status == ManifestEntryStatus.ADDED
617+
618+

0 commit comments

Comments
 (0)