Skip to content

Commit 869ea57

Browse files
committed
refactor: expect writer to be closed when creating manifest files
1 parent fee8568 commit 869ea57

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
@@ -876,7 +876,7 @@ def __exit__(
876876
traceback: Optional[TracebackType],
877877
) -> None:
878878
self._close_current_writer()
879-
self.closed = True
879+
self._closed = True
880880

881881
def _get_current_writer(self) -> ManifestWriter:
882882
if self._should_roll_to_new_file():
@@ -903,8 +903,8 @@ def _close_current_writer(self):
903903
self._current_file_rows = 0
904904

905905
def to_manifest_files(self) -> list[ManifestFile]:
906-
self._close_current_writer()
907-
self._closed = True
906+
if not self._closed:
907+
raise RuntimeError("Cannot create manifest files from unclosed writer")
908908
return self._manifest_files
909909

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

tests/utils/test_manifest.py

+8-5
Original file line numberDiff line numberDiff line change
@@ -556,11 +556,12 @@ def supplier() -> Generator[ManifestWriter, None, None]:
556556
) as writer:
557557
for entry in manifest_entries:
558558
writer.add_entry(entry)
559-
manifest_files = writer.to_manifest_files()
560-
assert len(manifest_files) == expected_number_of_files
561-
with pytest.raises(RuntimeError):
562-
# It is already closed
563-
writer.add_entry(manifest_entries[0])
559+
560+
manifest_files = writer.to_manifest_files()
561+
assert len(manifest_files) == expected_number_of_files
562+
with pytest.raises(RuntimeError):
563+
# It is already closed
564+
writer.add_entry(manifest_entries[0])
564565

565566

566567
@pytest.mark.parametrize("format_version", [1, 2])
@@ -630,3 +631,5 @@ def test_write_manifest_list(
630631
assert entry.file_sequence_number == 0 if format_version == 1 else 3
631632
assert entry.snapshot_id == 8744736658442914487
632633
assert entry.status == ManifestEntryStatus.ADDED
634+
635+

0 commit comments

Comments
 (0)