syun64 commented on code in PR #599: URL: https://github.com/apache/iceberg-python/pull/599#discussion_r1563120200
########## pyiceberg/table/__init__.py: ########## @@ -3253,6 +3253,15 @@ def __init__(self, tbl: Table) -> None: except ModuleNotFoundError as e: raise ModuleNotFoundError("For metadata operations PyArrow needs to be installed") from e + def _snapshot(self, snapshot_id: Optional[int] = None) -> Optional[Snapshot]: Review Comment: Couldn't think of a better one... is this a bit better than _snapshot? ^^; ########## pyiceberg/table/__init__.py: ########## @@ -3253,6 +3253,15 @@ def __init__(self, tbl: Table) -> None: except ModuleNotFoundError as e: raise ModuleNotFoundError("For metadata operations PyArrow needs to be installed") from e + def _snapshot(self, snapshot_id: Optional[int] = None) -> Optional[Snapshot]: + if snapshot_id: + if snapshot := self.tbl.metadata.snapshot_by_id(snapshot_id): + return snapshot + else: + raise ValueError(f"Cannot find snapshot with ID {snapshot_id}") Review Comment: @Fokko Sure - I thought it would be more correct to return an empty metadata table (entries, partitions, etc) if there's no snapshot in the table than raising an Exception, but this way I think we avoid extra `if` statements in each of the metadata table generating methods. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org