@@ -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
18071808class 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