@@ -212,10 +212,6 @@ def __eq__(self, other: Any) -> bool:
212212 return self .root == other .root
213213 return False
214214
215- @property
216- def supports_pyarrow_transform (self ) -> bool :
217- return False
218-
219215 @abstractmethod
220216 def pyarrow_transform (self , source : IcebergType ) -> "Callable[[pa.Array], pa.Array]" : ...
221217
@@ -399,10 +395,6 @@ def pyarrow_transform(self, source: IcebergType) -> "Callable[[pa.Array], pa.Arr
399395 pyiceberg_core_transform = _try_import ("pyiceberg_core" , extras_name = "pyiceberg-core" ).transform
400396 return _pyiceberg_transform_wrapper (pyiceberg_core_transform .bucket , self ._num_buckets )
401397
402- @property
403- def supports_pyarrow_transform (self ) -> bool :
404- return True
405-
406398
407399class TimeResolution (IntEnum ):
408400 YEAR = 6
@@ -462,10 +454,6 @@ def dedup_name(self) -> str:
462454 def preserves_order (self ) -> bool :
463455 return True
464456
465- @property
466- def supports_pyarrow_transform (self ) -> bool :
467- return True
468-
469457
470458class YearTransform (TimeTransform [S ]):
471459 """Transforms a datetime value into a year value.
@@ -781,10 +769,6 @@ def __repr__(self) -> str:
781769 def pyarrow_transform (self , source : IcebergType ) -> "Callable[[pa.Array], pa.Array]" :
782770 return lambda v : v
783771
784- @property
785- def supports_pyarrow_transform (self ) -> bool :
786- return True
787-
788772
789773class TruncateTransform (Transform [S , S ]):
790774 """A transform for truncating a value to a specified width.
@@ -931,10 +915,6 @@ def pyarrow_transform(self, source: IcebergType) -> "Callable[[pa.Array], pa.Arr
931915
932916 return _pyiceberg_transform_wrapper (pyiceberg_core_transform .truncate , self ._width )
933917
934- @property
935- def supports_pyarrow_transform (self ) -> bool :
936- return True
937-
938918
939919@singledispatch
940920def _human_string (value : Any , _type : IcebergType ) -> str :
@@ -1049,7 +1029,12 @@ def __repr__(self) -> str:
10491029 return "VoidTransform()"
10501030
10511031 def pyarrow_transform (self , source : IcebergType ) -> "Callable[[pa.Array], pa.Array]" :
1052- raise NotImplementedError ()
1032+ try :
1033+ import pyarrow as pa
1034+ except ModuleNotFoundError as e :
1035+ raise ModuleNotFoundError ("For partition transforms, PyArrow needs to be installed" ) from e
1036+
1037+ return lambda arr : pa .nulls (len (arr ), type = arr .type )
10531038
10541039
10551040def _truncate_number (
0 commit comments