@@ -1704,10 +1704,10 @@ def objs_to_bool(vals: ArrayLike) -> tuple[np.ndarray, type]:
1704
1704
def result_to_bool (
1705
1705
result : np .ndarray ,
1706
1706
inference : type ,
1707
- nullable : bool = False ,
1707
+ result_mask ,
1708
1708
) -> ArrayLike :
1709
- if nullable :
1710
- return BooleanArray (result .astype (bool , copy = False ), result == - 1 )
1709
+ if result_mask is not None :
1710
+ return BooleanArray (result .astype (bool , copy = False ), result_mask )
1711
1711
else :
1712
1712
return result .astype (inference , copy = False )
1713
1713
@@ -1985,10 +1985,8 @@ def _preprocessing(values):
1985
1985
return values ._data , None
1986
1986
return values , None
1987
1987
1988
- def _postprocessing (
1989
- vals , inference , nullable : bool = False , result_mask = None
1990
- ) -> ArrayLike :
1991
- if nullable :
1988
+ def _postprocessing (vals , inference , result_mask = None ) -> ArrayLike :
1989
+ if result_mask is not None :
1992
1990
if result_mask .ndim == 2 :
1993
1991
result_mask = result_mask [:, 0 ]
1994
1992
return FloatingArray (np .sqrt (vals ), result_mask .view (np .bool_ ))
@@ -3808,13 +3806,11 @@ def blk_func(values: ArrayLike) -> ArrayLike:
3808
3806
mask = mask .reshape (- 1 , 1 )
3809
3807
func = partial (func , mask = mask )
3810
3808
3811
- if how != "std" :
3812
- is_nullable = isinstance (values , BaseMaskedArray )
3813
- func = partial (func , nullable = is_nullable )
3814
-
3815
- elif isinstance (values , BaseMaskedArray ):
3809
+ result_mask = None
3810
+ if isinstance (values , BaseMaskedArray ):
3816
3811
result_mask = np .zeros (result .shape , dtype = np .bool_ )
3817
- func = partial (func , result_mask = result_mask )
3812
+
3813
+ func = partial (func , result_mask = result_mask )
3818
3814
3819
3815
# Call func to modify result in place
3820
3816
if how == "std" :
@@ -3825,14 +3821,12 @@ def blk_func(values: ArrayLike) -> ArrayLike:
3825
3821
if values .ndim == 1 :
3826
3822
assert result .shape [1 ] == 1 , result .shape
3827
3823
result = result [:, 0 ]
3824
+ if result_mask is not None :
3825
+ assert result_mask .shape [1 ] == 1 , result_mask .shape
3826
+ result_mask = result_mask [:, 0 ]
3828
3827
3829
3828
if post_processing :
3830
- pp_kwargs : dict [str , bool | np .ndarray ] = {}
3831
- pp_kwargs ["nullable" ] = isinstance (values , BaseMaskedArray )
3832
- if how == "std" and pp_kwargs ["nullable" ]:
3833
- pp_kwargs ["result_mask" ] = result_mask
3834
-
3835
- result = post_processing (result , inferences , ** pp_kwargs )
3829
+ result = post_processing (result , inferences , result_mask = result_mask )
3836
3830
3837
3831
if how == "std" and is_datetimelike :
3838
3832
values = cast ("DatetimeArray | TimedeltaArray" , values )
0 commit comments