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

Reply via email to