Skip to content

Commit 9edb166

Browse files
author
Sreesh Maheshwar
committed
Refactor to inspect constructor
1 parent 30db4d1 commit 9edb166

File tree

1 file changed

+6
-18
lines changed

1 file changed

+6
-18
lines changed

pyiceberg/table/__init__.py

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1689,13 +1689,14 @@ def to_pandas(self, **kwargs: Any) -> pd.DataFrame: ...
16891689
@abstractmethod
16901690
def to_polars(self) -> pl.DataFrame: ...
16911691

1692-
@property
1693-
@abstractmethod
1694-
def _arguments(self) -> dict[str, Any]: ...
1695-
16961692
def update(self: S, **overrides: Any) -> S:
16971693
"""Create a copy of this table scan with updated fields."""
1698-
return type(self)(**{**self._arguments, **overrides})
1694+
from inspect import signature
1695+
1696+
params = signature(type(self).__init__).parameters.keys() - {"self"} # Skip "self" parameter
1697+
kwargs = {param: getattr(self, param) for param in params} # Assume parameters are attributes
1698+
1699+
return type(self)(**{**kwargs, **overrides})
16991700

17001701
def use_ref(self: S, name: str) -> S:
17011702
if self.snapshot_id:
@@ -1805,19 +1806,6 @@ def _match_deletes_to_data_file(data_entry: ManifestEntry, positional_delete_ent
18051806

18061807

18071808
class DataScan(TableScan):
1808-
@property
1809-
def _arguments(self) -> dict[str, Any]:
1810-
return {
1811-
"table_metadata": self.table_metadata,
1812-
"io": self.io,
1813-
"row_filter": self.row_filter,
1814-
"selected_fields": self.selected_fields,
1815-
"case_sensitive": self.case_sensitive,
1816-
"snapshot_id": self.snapshot_id,
1817-
"options": self.options,
1818-
"limit": self.limit,
1819-
}
1820-
18211809
def _build_partition_projection(self, spec_id: int) -> BooleanExpression:
18221810
project = inclusive_projection(self.table_metadata.schema(), self.table_metadata.specs()[spec_id], self.case_sensitive)
18231811
return project(self.row_filter)

0 commit comments

Comments
 (0)