Skip to content

Commit c8a7098

Browse files
committed
address feedback
1 parent ba18a02 commit c8a7098

2 files changed

Lines changed: 25 additions & 9 deletions

File tree

pyiceberg/table/__init__.py

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -275,13 +275,20 @@ def __exit__(self, exctype: type[BaseException] | None, excinst: BaseException |
275275
if exctype is None and excinst is None and exctb is None:
276276
self.commit_transaction()
277277

278-
def _apply(
278+
def _stage(
279279
self,
280280
updates: tuple[TableUpdate, ...],
281281
requirements: tuple[TableRequirement, ...] = (),
282-
commit_transaction_if_autocommit: bool = True,
283282
) -> Transaction:
284-
"""Check if the requirements are met, and applies the updates to the metadata."""
283+
"""Stage updates to the transaction state without committing to the catalog.
284+
285+
Args:
286+
updates: The updates to stage.
287+
requirements: The requirements that must be met.
288+
289+
Returns:
290+
This transaction for method chaining.
291+
"""
285292
for requirement in requirements:
286293
requirement.validate(self.table_metadata)
287294

@@ -294,7 +301,17 @@ def _apply(
294301
if type(new_requirement) not in existing_requirements:
295302
self._requirements = self._requirements + (new_requirement,)
296303

297-
if self._autocommit and commit_transaction_if_autocommit:
304+
return self
305+
306+
def _apply(
307+
self,
308+
updates: tuple[TableUpdate, ...],
309+
requirements: tuple[TableRequirement, ...] = (),
310+
) -> Transaction:
311+
"""Check if the requirements are met, and applies the updates to the metadata."""
312+
self._stage(updates, requirements)
313+
314+
if self._autocommit:
298315
self.commit_transaction()
299316

300317
return self

pyiceberg/table/update/snapshot.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -844,9 +844,9 @@ def _commit(self) -> UpdatesAndRequirements:
844844
return self._updates, self._requirements
845845

846846
def _commit_if_ref_updates_exist(self) -> None:
847-
"""Commit any pending ref updates to the transaction."""
847+
"""Stage any pending ref updates to the transaction state."""
848848
if self._updates:
849-
self._transaction._apply(*self._commit(), commit_transaction_if_autocommit=False)
849+
self._transaction._stage(*self._commit())
850850
self._updates = ()
851851
self._requirements = ()
852852

@@ -980,10 +980,9 @@ def set_current_snapshot(self, snapshot_id: int | None = None, ref_name: str | N
980980
update, requirement = self._transaction._set_ref_snapshot(
981981
snapshot_id=target_snapshot_id,
982982
ref_name=MAIN_BRANCH,
983-
type="branch",
983+
type=SnapshotRefType.BRANCH,
984984
)
985-
self._updates += update
986-
self._requirements += requirement
985+
self._transaction._stage(update, requirement)
987986
return self
988987

989988

0 commit comments

Comments
 (0)