
    Whί                       U d dl mZ d dlmZmZmZmZmZ d dlZ	d dl
mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZmZmZmZmZmZmZmZm Z m!Z!m"Z" d d
l#m$Z$m%Z% d dl&m'Z' d dl(m)Z) d dl*m+Z+m,Z,m-Z-m.Z. d dl/m0Z0 d dl1m2Z2m3Z3 erd dl4m5Z5m6Z6m7Z7m8Z8 d dl9m:Z: d dl;Z<d dl=Z>d dl?m@Z@mAZAmBZB d dlCmDZD d dlEmFZF d dlGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZR d dlSmTZT d dl*mUZUmVZV d dlWmXZX d dlYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZh dZidejd<   e	 	 	 	 	 	 d(d       Zke	 	 	 	 	 	 d)d       Zke	 	 	 	 	 	 d*d       Zke	 	 	 	 	 	 d+d        Zkd,d!Zk G d" d#e$d$         Zl G d% d&e%d'         Zmy)-    )annotations)TYPE_CHECKINGAnyLiteralcastoverloadNArrowSeriesCatNamespaceArrowSeriesDateTimeNamespaceArrowSeriesListNamespaceArrowSeriesStringNamespaceArrowSeriesStructNamespace)cast_for_truedivchunked_arrayextract_nativefloordiv_compatis_array_or_scalarlitnarwhals_to_native_dtypenative_to_narwhals_dtype
nulls_like
pad_serieszeros)EagerSeriesEagerSeriesHist)ExprKind)assert_never)Implementationgenerate_temporary_column_name
is_list_ofnot_implemented)is_numpy_array_1d)InvalidOperationError
ShapeError)IterableIteratorMappingSequence)
ModuleType)Self	TypeAliasTypeIsArrowDataFrameArrowNamespace)ArrayAnyArrayOrChunkedArrayArrayOrScalarChunkedArrayAny
IncompleteNullPlacementOrder	ScalarAny
TieBreaker	_AsPyType_BasicDataType)HistData)Version_LimitedContext)DType)ClosedIntervalFillNullStrategyInto1DArray	IntoDTypeModeKeepStrategyNonNestedLiteralNumericLiteralPythonLiteral
RankMethodRollingInterpolationMethodSizedMultiIndexSelectorTemporalLiteral_1DArray_2DArray_SliceIndexzHHistData[ChunkedArrayAny, list[ScalarAny] | pa.Int64Array | list[float]]r/   ArrowHistDatac                     y N valuereturn_py_scalars     P/var/www/html/jupyter_env/lib/python3.12/site-packages/narwhals/_arrow/series.pymaybe_extract_py_scalarr[   Y   s         c                     y rU   rV   rW   s     rZ   r[   r[   `   s     r\   c                     y rU   rV   rW   s     rZ   r[   r[   g   s     r\   c                     y rU   rV   rW   s     rZ   r[   r[   n   s     r\   c                b     t         r j                         S |r t         d fd             S  S )Nas_pyc                      S rU   rV   )rX   s   rZ   <lambda>z)maybe_extract_py_scalar.<locals>.<lambda>y   s    u r\   )r   ra   getattrrW   s   ` rZ   r[   r[   u   s.    {{}5wug}577Lr\   c                  (    e Zd Zej                  Z	 	 	 	 	 	 	 	 ddZedd       ZddZ	dd	 	 	 	 	 ddZ
eddd		 	 	 	 	 	 	 	 	 dd
       Zd fdZedd       Zedd	 	 	 	 	 	 	 dd       Zedd       Zedd       ZddZddZddZddZddZddZddZddZddZddZddZddZddZddZ ddZ!dd Z"dd!Z#dd"Z$dd#Z%dd$Z&dd%Z'dd&Z(dd'Z)dd(Z*dd)Z+dd*Z,edd+       Z-d,d-dd.Z.dd/Z/d,d-dd0Z0d,d-dd1Z1d,d-dd2Z2d,d-dd3Z3d,d-dd4Z4d,d-dd5Z5d,d-dd6Z6dd7Z7dd8Z8d,d-dd9Z9d,d-dd:Z:d,d-dd;Z;d,d-dd<Z<d,d-dd=Z=d,d-dd>Z>dd?Z?edd@       Z@ddAZAddBZBddCZCddDZDdddEddFZEdddEddGZFddHZGeddI       ZHddJZIddKZJddLZKddMZLd,d-ddNZMd,d-ddOZN	 	 	 	 	 	 	 	 ddPZOddQZPddRZQddSZRd,d-ddTZSddUZTddVZUddWZVddXZWdddYZX	 	 	 	 	 	 	 	 	 	 ddZZYdd[ZZ	 	 	 	 	 	 	 	 	 	 dd\Z[dd]Z\	 	 	 	 	 	 	 	 dd^Z]dd_Z^dd`Z_ddaZ`ddbZaddcZbdddZcddeZdd,dfddgZe	 	 	 	 	 	 	 	 ddhZfddiZgddjZhd,d-	 	 	 	 	 	 	 ddkZidddlZj	 	 	 	 	 	 ddmZkddnZlddoZmddpZnddqZoddrZpddsZqddtZrdduZsddvZt	 	 	 	 	 	 	 	 	 	 ddwZu	 	 	 	 	 	 	 	 	 	 ddxZvddyZw	 	 	 	 	 	 ddzZx	 	 	 	 	 	 dd{Zydd|Zzdd}Z{dd~Z|ddZ}ddZ~edd       Zedd       Zedd       Zedd       Zedd       Z e       Z xZS )ArrowSeriesc               <    || _         || _        || _        d| _        y )NF)_name_native_series_version
_broadcast)selfnative_seriesnameversions       rZ   __init__zArrowSeries.__init__   s!     
/<r\   c                    | j                   S rU   )ri   rl   s    rZ   nativezArrowSeries.native   s    """r\   c                R    | j                  | j                  | j                  |      S N)rn   ro   )	__class__rs   rh   )rl   ro   s     rZ   _with_versionzArrowSeries._with_version   s    ~~dkk

G~LLr\   Fpreserve_broadcastc               z    | j                  t        |      | j                  |       }|r| j                  |_        |S )Nrn   context)from_nativer   rn   rk   )rl   seriesry   results       rZ   _with_nativezArrowSeries._with_native   s9     !!-"7diiQU!V $Fr\    N)rn   dtypec                   |j                   }|Kt        ||      }t        |      r|j                  |      }d }| j	                  |      r|nt        |g|      }nt        |g      }| j                  |||      S )N)r|   rn   )rj   r   r   r   
_is_nativer   r}   )clsdatar|   rn   r   ro   dtype_pars   s           rZ   from_iterablezArrowSeries.from_iterable   sx     ""+CE7+SH!$'yy* ^^D1T}dVX7VF"D6*FvwTBBr\   c                Z    t        |d      r|j                         }t        |   |      S )Nra   )hasattrra   super_from_scalar)rl   rX   rv   s     rZ   r   zArrowSeries._from_scalar   s(    5'"KKMEw#E**r\   c                6    t        | t        j                        S rU   )
isinstancepaChunkedArray)objs    rZ   r   zArrowSeries._is_native   s    #r//r\   rn   c              ,     | ||j                   |      S )N)ro   rn   )rj   )r   r   r|   rn   s       rZ   r}   zArrowSeries.from_native   s     4!1!1==r\   c              P    | j                  t        |      r||      S |g|      S N)r|   )r   r&   )r   r   r|   s      rZ   
from_numpyzArrowSeries.from_numpy   s<      %d+D ! 
 	
26 ! 
 	
r\   c                  	 |D cg c]  }t        |       }}t        |      	t        	fd|D              }|r|S g }|D ]x  }|j                  r3|j	                  t        j                  |j                  d   	            }n&t        |      x}	k7  rd	 d| d}t        |      |}|j                  |       z |S c c}w )Nc              3  (   K   | ]	  }|k(    y wrU   rV   ).0_len
max_lengths     rZ   	<genexpr>z4ArrowSeries._align_full_broadcast.<locals>.<genexpr>   s     ?t
*?s   r   zExpected object of length z, got .)
lenmaxallrk   r   r   repeatrs   r(   append)
r   r~   slengths	fast_pathreshaped	compliant
actual_lenmsgr   s
            @rZ   _align_full_broadcastz!ArrowSeries._align_full_broadcast   s    #)*a3q6**\
?w??	M 	'A||NN299QXXa[*+MN	 #A&*:52:,fZLPQR o%	OOI&	'  +s   B>c                4    ddl m}  || j                        S )Nr   r3   )ro   )narwhals._arrow.namespacer4   rj   )rl   r4   s     rZ   __narwhals_namespace__z"ArrowSeries.__narwhals_namespace__   s    <dmm44r\   c                    t        d|      }t        | |      \  }}| j                  t        j                  ||            S Nz"PythonLiteral | ArrowSeries | None)r   r   r   pcequalrl   otherserrhss       rZ   __eq__zArrowSeries.__eq__   s;    95A!$.S  #s!344r\   c                    t        d|      }t        | |      \  }}| j                  t        j                  ||            S r   )r   r   r   r   	not_equalr   s       rZ   __ne__zArrowSeries.__ne__   s;    95A!$.S  c3!788r\   c                j    t        | |      \  }}| j                  t        j                  ||            S rU   )r   r   r   greater_equalrl   r   r   s      rZ   __ge__zArrowSeries.__ge__   s0    #D%0
U  !1!1#u!=>>r\   c                j    t        | |      \  }}| j                  t        j                  ||            S rU   )r   r   r   greaterr   s      rZ   __gt__zArrowSeries.__gt__   s.    #D%0
U  C!788r\   c                j    t        | |      \  }}| j                  t        j                  ||            S rU   )r   r   r   
less_equalr   s      rZ   __le__zArrowSeries.__le__   .    #D%0
U  sE!:;;r\   c                j    t        | |      \  }}| j                  t        j                  ||            S rU   )r   r   r   lessr   s      rZ   __lt__zArrowSeries.__lt__   s.    #D%0
U  e!455r\   c                j    t        | |      \  }}| j                  t        j                  ||            S rU   r   r   r   
and_kleener   s      rZ   __and__zArrowSeries.__and__   r   r\   c                j    t        | |      \  }}| j                  t        j                  ||            S rU   r   r   s      rZ   __rand__zArrowSeries.__rand__   s.    #D%0
U  uc!:;;r\   c                j    t        | |      \  }}| j                  t        j                  ||            S rU   r   r   r   	or_kleener   s      rZ   __or__zArrowSeries.__or__   s.    #D%0
U  c5!9::r\   c                j    t        | |      \  }}| j                  t        j                  ||            S rU   r   r   s      rZ   __ror__zArrowSeries.__ror__   s.    #D%0
U  eS!9::r\   c                j    t        | |      \  }}| j                  t        j                  ||            S rU   )r   r   r   addr   s      rZ   __add__zArrowSeries.__add__  s.    #D%0
U  U!344r\   c                    | |z   S rU   rV   rl   r   s     rZ   __radd__zArrowSeries.__radd__      e|r\   c                j    t        | |      \  }}| j                  t        j                  ||            S rU   )r   r   r   subtractr   s      rZ   __sub__zArrowSeries.__sub__	  .    #D%0
U  S%!899r\   c                    | |z
  dz  S )NrV   r   s     rZ   __rsub__zArrowSeries.__rsub__  s    u$$r\   c                j    t        | |      \  }}| j                  t        j                  ||            S rU   )r   r   r   multiplyr   s      rZ   __mul__zArrowSeries.__mul__  r   r\   c                    | |z  S rU   rV   r   s     rZ   __rmul__zArrowSeries.__rmul__  r   r\   c                j    t        | |      \  }}| j                  t        j                  ||            S rU   r   r   r   powerr   s      rZ   __pow__zArrowSeries.__pow__  s.    #D%0
U  #u!566r\   c                j    t        | |      \  }}| j                  t        j                  ||            S rU   r   r   s      rZ   __rpow__zArrowSeries.__rpow__  s.    #D%0
U  %!566r\   c                V    t        | |      \  }}| j                  t        ||            S rU   r   r   r   r   s      rZ   __floordiv__zArrowSeries.__floordiv__  s*    #D%0
U  e!<==r\   c                V    t        | |      \  }}| j                  t        ||            S rU   r   r   s      rZ   __rfloordiv__zArrowSeries.__rfloordiv__#  s*    #D%0
U  !<==r\   c                v    t        | |      \  }}| j                  t        j                  t	        ||             S rU   r   r   r   divider   r   s      rZ   __truediv__zArrowSeries.__truediv__'  s4    #D%0
U  ,<S%,H!IJJr\   c                v    t        | |      \  }}| j                  t        j                  t	        ||             S rU   r   r   s      rZ   __rtruediv__zArrowSeries.__rtruediv__+  s4    #D%0
U  ,<UC,H!IJJr\   c                    | |z  j                   }t        | |      \  }}t        j                  |t        j                  ||            }| j                  |      S rU   rs   r   r   r   r   r   rl   r   	floor_divr   ress        rZ   __mod__zArrowSeries.__mod__/  sM    U]**	#D%0
Ukk#r{{9e<=  %%r\   c                    || z  j                   }t        | |      \  }}t        j                  |t        j                  ||            }| j                  |      S rU   r   r   s        rZ   __rmod__zArrowSeries.__rmod__5  sM    d]**	#D%0
Ukk%Y!<=  %%r\   c                ^    | j                  t        j                  | j                              S rU   )r   r   invertrs   rr   s    rZ   
__invert__zArrowSeries.__invert__;  s       4;;!788r\   c                .    | j                   j                  S rU   )rs   typerr   s    rZ   _typezArrowSeries._type>  s    {{r\   T)_return_py_scalarc               @    t        t        | j                        |      S rU   )r[   r   rs   rl   r  s     rZ   r   zArrowSeries.lenB  s    &s4;;'79JKKr\   c                    t        |t              st        | |      \  }}n|}| j                  | j                  j                  |            S rU   )r$   boolr   r   rs   filter)rl   	predicate_other_natives       rZ   r  zArrowSeries.filterE  sA    )T*,T9=OA|$L  !3!3L!ABBr\   c               T    t        t        j                  | j                        |      S rU   )r[   r   meanrs   r  s     rZ   r  zArrowSeries.meanM  s    &rwwt{{';=NOOr\   c                   | j                   j                         sd}t        |      t        t	        j
                  | j                        |      S )Nz<`median` operation not supported for non-numeric input type.)r   
is_numericr'   r[   r   approximate_medianrs   )rl   r  r   s      rZ   medianzArrowSeries.medianP  sD    zz$$&PC',,&!!$++.0A
 	
r\   c               T    t        t        j                  | j                        |      S rU   )r[   r   minrs   r  s     rZ   r  zArrowSeries.minY      &rvvdkk':<MNNr\   c               T    t        t        j                  | j                        |      S rU   )r[   r   r   rs   r  s     rZ   r   zArrowSeries.max\  r  r\   c                   t        j                  | j                  t        j                  | j                              }t	        ||      S rU   )r   indexrs   r  r[   )rl   r  	index_mins      rZ   arg_minzArrowSeries.arg_min_  1    HHT[["&&*=>	&y2CDDr\   c                   t        j                  | j                  t        j                  | j                              }t	        ||      S rU   )r   r  rs   r   r[   )rl   r  	index_maxs      rZ   arg_maxzArrowSeries.arg_maxc  r  r\   c               X    t        t        j                  | j                  d      |      S Nr   )	min_count)r[   r   sumrs   r  s     rZ   r$  zArrowSeries.sumg  $    &FF4;;!,.?
 	
r\   c                T    | j                  | j                  j                               S rU   )r   rs   	drop_nullrr   s    rZ   
drop_nullszArrowSeries.drop_nullsl  s       !6!6!899r\   c                8   |dkD  r(t        ||       g| j                  d |  j                  }nJ|dk  r*g | j                  | d  j                  t        | |       }n| j                  | j                        S | j                  t	        j
                  |            S Nr   )r   rs   chunksr   r   concat_arrays)rl   narrayss      rZ   shiftzArrowSeries.shifto  s    q5 D)DDKK!,<,C,CDFUEt{{A23'..E
A2t0DEF$$T[[11  !1!1&!9::r\   c               X    t        t        j                  | j                  |      |      S N)ddof)r[   r   stddevrs   rl   r2  r  s      rZ   stdzArrowSeries.stdx  s$    &IIdkk-/@
 	
r\   c               X    t        t        j                  | j                  |      |      S r1  )r[   r   variancers   r4  s      rZ   varzArrowSeries.var}  s$    &KK$/1B
 	
r\   c          	     <   | j                   j                         }t        |      dk(  ry t        |      dk(  rt        d      S t        |      dk(  ryt	        j
                  |t	        j                  |            }t	        j                  t	        j                  |t        d                  }t	        j                  t	        j                  |t        d                  }t	        j                  |t	        j                  |t        d                  }t        ||      S )Nr      nan   g           g      ?rs   r'  r   floatr   r   r  r   r   r   r[   )rl   r  ser_not_nullmm2m3biased_population_skewnesss          rZ   skewzArrowSeries.skew  s    {{,,.|!|!<|!KKbggl&;<WWRXXaQ()WWRXXaQ()%'YYr288BC3I%J"&'ACTUUr\   c               X   | j                   j                         }t        |      dk(  ry t        |      dk(  rt        d      S t	        j
                  |t	        j                  |            }t	        j                  t	        j                  |t        d                  }t	        j                  t	        j                  |t        d                  }t	        j
                  t	        j                  |t	        j                  |t        d                  t        d            }t        ||      S )Nr   r:  r;  r<     r=  r>  )rl   r  r@  rA  rB  m4ks          rZ   kurtosiszArrowSeries.kurtosis  s    {{,,.|!|!<KKbggl&;<WWRXXaQ()WWRXXaQ()KK		"bhhr3q6&:;SVD&q*;<<r\   c               T    t        t        j                  | j                        |      S rU   )r[   r   countrs   r  s     rZ   rL  zArrowSeries.count  s    &rxx'<>OPPr\   c               t    t        t        j                  | j                  j	                         d      |      S )Nr   )mode)r[   r   rL  rs   uniquer  s     rZ   n_uniquezArrowSeries.n_unique  s-    &HHT[['')68I
 	
r\   c                    | j                   t        j                  u r| j                   j                         S dt	        | j                          }t        |      )NzExpected pyarrow, got: )_implementationr"   PYARROWto_native_namespacer  AssertionError)rl   r   s     rZ   __native_namespace__z ArrowSeries.__native_namespace__  sN    >#9#99'';;=='T-A-A(B'CDS!!r\   c                    | j                   S rU   )rh   rr   s    rZ   rn   zArrowSeries.name  s    zzr\   c                   t        |      dk(  r+| j                  | j                  j                  dd            S | j                  dk  rt        |t              rt        |      }| j                  | j                  j                  |            S )Nr   )   )	r   r   rs   slice_backend_versionr   tuplelisttake)rl   rowss     rZ   _gatherzArrowSeries._gather  so    t9>$$T[[%6%6q!%<==  5(Ze-D:D  !1!1$!788r\   c                   |j                   xs d}|j                  |j                  nt        | j                        }|dk  rt        | j                        |z   }|dk  rt        | j                        |z   }|j                  |j                  dk7  rd}t        |      | j                  | j                  j                  |||z
              S )Nr   r:  z4Slicing with step is not supported on PyArrow tables)startstopr   rs   stepNotImplementedErrorr   rZ  )rl   r_  rb  rc  r   s        rZ   _gather_slicezArrowSeries._gather_slice  s    

a II1tyys4;;7G19$u,E!8t{{#d*D99 TYY!^HC%c**  !2!25$,!GHHr\   c                h   dd l }t        |t              r-t        j                  |g      }t        j                  |g      }n^t        j                  |      }t        || j
                        r|j                  j                         }nt        j                  } ||      }t        j                  |      }|j                  |      }|j                  |      }|j                  | j                         t              }d||<   t        j                  }	| j                   |	| j                  ||            S )Nr   )r   T)numpyr   intr   arrayrv   rs   combine_chunksr   sort_indicesr^  r   r   r
  replace_with_maskr   )
rl   indicesvaluesnpindices_nativevalues_nativepa_arraysorting_indicesmaskpc_replace_with_masks
             rZ   scatterzArrowSeries.scatter  s     gs#XXwi0NHHfX.M  XXg.N&$..1 & < < > (*xx ( 0//.9',,_=%**?;$((*D9#^ ,.+?+?  !5dkk4!WXXr\   c                6    | j                   j                         S rU   )rs   	to_pylistrr   s    rZ   to_listzArrowSeries.to_list  s    {{$$&&r\   )copyc               <    | j                   j                  ||      S )N)r   r{  )rs   	__array__rl   r   r{  s      rZ   r}  zArrowSeries.__array__  s    {{$$5t$<<r\   c               6    | j                   j                         S rU   )rs   to_numpyr~  s      rZ   r  zArrowSeries.to_numpy  s    {{##%%r\   c                x    | j                  | j                  || j                        }| j                  |_        |S ru   )rv   rs   rj   rk   )rl   rn   r   s      rZ   aliaszArrowSeries.alias  s/    $N OOr\   c                V    t        | j                  j                  | j                        S rU   )r   rs   r  rj   rr   s    rZ   r   zArrowSeries.dtype  s    '(8(8$--HHr\   c                ^    | j                  t        j                  | j                              S rU   )r   r   absrs   rr   s    rZ   r  zArrowSeries.abs         !455r\   c                   t         j                  }|s || j                  d      n || j                  d d d   d      d d d   }| j                  |      S NT)
skip_nullsr   )r   cumulative_sumrs   r   )rl   reversecum_sumr   s       rZ   r  zArrowSeries.cum_sum  sZ    ##  DKKD1TrT*t<TrTB 	
   ((r\   c                d    | j                  t        j                  | j                  |d            S )Nhalf_towards_infinity)
round_mode)r   r   roundrs   )rl   decimalss     rZ   r  zArrowSeries.round   s*      HHT[[(7NO
 	
r\   c                z    | j                  t        j                  | j                  j	                                     S rU   )r   r   pairwise_diffrs   rk  rr   s    rZ   diffzArrowSeries.diff  s+      !1!1$++2L2L2N!OPPr\   c               X    t        t        j                  | j                  d      |      S r"  )r[   r   anyrs   r  s     rZ   r  zArrowSeries.any  r%  r\   c               X    t        t        j                  | j                  d      |      S r"  )r[   r   r   rs   r  s     rZ   r   zArrowSeries.all  r%  r\   c                X   t        | |      \  }}t        | |      \  }}|dk(  rXt        j                  | j                  |      }t        j                  | j                  |      }t        j
                  ||      }n|dk(  rWt        j                  | j                  |      }t        j                  | j                  |      }	t        j
                  ||	      }n|dk(  rWt        j                  | j                  |      }t        j                  | j                  |      }t        j
                  ||      }ng|dk(  rWt        j                  | j                  |      }t        j                  | j                  |      }	t        j
                  ||	      }nt        |       | j                        S )Nleftrightnoneboth)
r   r   r   rs   r   r   r   r   r!   r   )
rl   lower_boundupper_boundclosedr  geltr   gtles
             rZ   
is_betweenzArrowSeries.is_between  sA    (k:;'k:;V!!$++{;Bk2B--B'CwDKK5Bt{{K8B--B'CvDKK5Bk2B--B'Cv!!$++{;Bt{{K8B--B'C   %%r\   c                X    | j                  | j                  j                         d      S NTrx   )r   rs   is_nullrr   s    rZ   r  zArrowSeries.is_null+  s%      !4!4!64 PPr\   c                b    | j                  t        j                  | j                        d      S r  )r   r   is_nanrs   rr   s    rZ   r  zArrowSeries.is_nan.  s%      4;;!7D QQr\   c                    t        || j                        }| j                  t        j                  | j
                  |      d      S r  )r   rj   r   r   r   rs   )rl   r   	data_types      rZ   r   zArrowSeries.cast1  s8    ,UDMMB	  i!@UY ZZr\   c               B    t        | j                  j                  |      S rU   )r[   rs   
null_countr  s     rZ   r  zArrowSeries.null_count5  s    &t{{'='=?PQQr\   c           
         |dk\  r+| j                  | j                  j                  d|            S t        |       }| j                  | j                  j                  dt	        d||z                     S r*  )r   rs   rZ  r   r   rl   r-  num_rowss      rZ   headzArrowSeries.head8  sa    6$$T[[%6%6q!%<==t9  !2!21c!X\6J!KLLr\   c           	         |dk\  rBt        |       }| j                  | j                  j                  t	        d||z
                    S | j                  | j                  j                  t        |                  S r*  )r   r   rs   rZ  r   r  r  s      rZ   tailzArrowSeries.tail>  sa    64yH$$T[[%6%6s1hl7K%LMM  !2!23q6!:;;r\   c                    | j                  |      r|}nt        j                  |      }| j                  t	        j
                  | j                  |            S )N)	value_set)r   r   rj  r   r   is_inrs   )rl   r   r  s      rZ   r  zArrowSeries.is_inD  s@    ??5!-2II  $++!KLLr\   c                |    dd l }|j                  | j                        }| j                  || j                  |       S )Nr   r{   )rh  flatnonzerors   r   rn   )rl   rp  r   s      rZ   arg_truezArrowSeries.arg_trueK  s3    nnT[[)!!#DIIt!DDr\   c                    |Bt        |       dk7  rdt        |        d}t        |      t        | j                  d   d      S t        | j                  |   d      S )Nr:  zlcan only call '.item()' if the Series is of length 1, or an explicit index is provided (Series is of length )r   TrY   )r   
ValueErrorr[   rs   )rl   r  r   s      rZ   itemzArrowSeries.itemQ  sg    =4yA~NNQRVi[XY[  !o%*4;;q>DQQ&t{{5'9DQQr\   c          	        ddl m} | j                  dn| j                  }|xs |rdnd}t        j                  | j
                        }|j                  d      }	t        d|j                  d            }
|r2|	t        j                  t        |
t        j                  |
             g}n|	|
g}t        j                  j                  |||g	      }|r|j                  |d
fg      } ||| j                  d      S )z-Parallel is unused, exists for compatibility.r   r1   r  
proportionrL  ro  r8   countsnames
descendingTro   validate_column_names)narwhals._arrow.dataframer2   rh   r   value_countsrs   fieldr   r   r   r$  r   Tablefrom_arrayssort_byrj   )rl   sortparallelrn   	normalizer2   index_name_value_name_
val_countsro  r  r.  	val_counts                rZ   r  zArrowSeries.value_counts\  s     	=!%!3gFy|g__T[[1
!!(+')9)9()CDbii)9&"&&.)QRSFf%FHH(([7Q(R	!))K+F*GHIt}}D
 	
r\   c                    |j                   j                         }| j                  t        j                  || j                   |j                               S rU   )rs   rk  r   r   if_else)rl   ru  r   conds       rZ   zip_withzArrowSeries.zip_withw  s:    {{))+  D$++u||!LMMr\   c                  dd l }t        |       }||t        ||z        }|j                  j	                  |      }|j                  |      }|j                  |||      }	| j                  | j                  j                  |	            S )Nr   )seed)sizereplace)
rh  r   ri  randomdefault_rngarangechoicer   rs   r^  )
rl   r-  fractionwith_replacementr  rp  r  rngidxru  s
             rZ   samplezArrowSeries.sample{  s     	t99-Hx'(Aii###.ii!zz#A/?z@  !1!1$!788r\   c                    t        j                  t        j                  | j                        || j                        }| j	                  |d      S r  )r   r  r  rs   r   )rl   rX   r   s      rZ   fill_nanzArrowSeries.fill_nan  s;    BIIdkk2E4;;G  D AAr\   c                N  	 dd l 		 	 	 	 	 	 	 	 d	fd}|0t        | |      \  }}t        j                  | j                  |      }nN|8|dk(  rt        j
                  nt        j                  } || j                        }n || j                  ||      }| j                  |d      S )Nr   c                   t        j                  |       }t        j                  j	                  t        |             t        j                               }|dk(  r2j                  j                  j                  ||d            }||z
  }nLj                  j                  j                  |d d d   |d d d   t        |                   d d d   }||z
  }t        j                  t        j                  t        j                  |       t        j                  |t        |                  | j!                  |      |       S )Nr  forwardr   )r   is_validr   rj  r  r   int64maximum
accumulatewhereminimumr  and_r  r   r   r^  )arrlimit	direction
valid_maskrn  valid_indexdistancerp  s          rZ   fill_auxz'ArrowSeries.fill_null.<locals>.fill_aux  s     S)JhhryyS2DGI% jj33BHHZRT4UV"[0 jj33HHZ"-wtt}c#hGB$ '0::

3xU)LM% r\   r  Trx   )r  r8   r  ri  r  FillNullStrategy | Nonereturnr5   )rh  r   r   	fill_nullrs   fill_null_forwardfill_null_backwardr   )
rl   rX   strategyr  r  r  native_valuer~   	fill_funcrp  s
            @rZ   r  zArrowSeries.fill_null  s     		 	),	9P		, ,T59OA|$&LLl$KF](0I(=$$2CXCX  t{{+Fdkk5(;F  D AAr\   c                    ddl m} t        j                  j	                  | j
                  g| j                  g      } ||| j                  d      S )Nr   r1   r  Fr  )r  r2   r   r  r  rs   rn   rj   )rl   r2   dfs      rZ   to_framezArrowSeries.to_frame  s=    <XX!!4;;-		{!Cb$--uUUr\   c                Z    dd l } |j                  | j                  | j                        S )Nr   r   )pandasSeriesrs   rn   )rl   pds     rZ   	to_pandaszArrowSeries.to_pandas  s     ryy49955r\   c                V    dd l }t        d |j                  | j                              S )Nr   	pl.Series)polarsr   
from_arrowrs   )rl   pls     rZ   	to_polarszArrowSeries.to_polars  s!    Kt{{!;<<r\   c                p    | j                         j                         j                  | j                        S rU   )r  	is_uniquer  rn   rr   s    rZ   r  zArrowSeries.is_unique  s&    }}((*00;;r\   c                   dd l }t        j                  |j                  t	        |                   }t        d| j                  g      }t        j                  j                  | j                  g| j                  g      j                  ||      j                  | j                        j                  |dfg      j                  | d      }| j                  t        j                   ||            S )Nr      n_bytescolumnsr  r  _minrh  r   rj  r  r   r#   rn   r  r  rs   append_columngroup_by	aggregatecolumnr   r   r  )rl   rp  
row_number	col_tokenfirst_distinct_indexs        rZ   is_first_distinctzArrowSeries.is_first_distinct  s    XXbiiD	23
21tyykR	HH  $++tyyk B]9j1Xdii YE*+,Vyk&' 	   *6J!KLLr\   c                   dd l }t        j                  |j                  t	        |                   }t        d| j                  g      }t        j                  j                  | j                  g| j                  g      j                  ||      j                  | j                        j                  |dfg      j                  | d      }| j                  t        j                   ||            S )Nr   r  r  r  r   _maxr  )rl   rp  r  r  last_distinct_indexs        rZ   is_last_distinctzArrowSeries.is_last_distinct  s    XXbiiD	23
21tyykR	HH  $++tyyk B]9j1Xdii YE*+,Vyk&' 	   *6I!JKKr\   c                  t        |t              sdt        |       }t        |      |rDt	        j
                  t	        j                  | j                  d d | j                  dd              }nCt	        j
                  t	        j                  | j                  d d | j                  dd              }t        |d      S )Nz/argument 'descending' should be boolean, found r   r:  Tr  )
r   r
  r  	TypeErrorr   r   r   rs   r   r[   )rl   r  r   r   s       rZ   	is_sortedzArrowSeries.is_sorted  s    *d+CDDTCUVCC. VVB,,T[["-=t{{12OPFVVBMM$++cr*:DKKOLMF&vEEr\   maintain_orderc               T    | j                  | j                  j                               S rU   )r   rs   rO  )rl   r(  s     rZ   rO  zArrowSeries.unique  s       !3!3!566r\   c               b   t        j                  | j                  t        j                  |            }t        j
                  t        j                  |      |      }|%|j                  t        || j                               | j                  |      }|j                         j                         | j                         j                         k7  r]d| j                  | j                          |j                         z        j                  d      j                          }t        |      |S )NzYreplace_strict did not replace all non-null values.

The following did not get replaced: Fr'  )r   index_inrs   r   rj  r^  r   r   rj   r   r  r$  r  rO  rz  r  )rl   oldnewreturn_dtypeidxsresult_nativer   r   s           rZ   replace_strictzArrowSeries.replace_strict  s     {{4;;6t4#7dmmTU""=1>>!T\\^%7%7%997;;1AABIIY^I_ggijl 
 S/!r\   c                   |rdnd}|rdnd}t        j                  | j                  ||      }| j                  | j                  j	                  |            S )Nr  	ascendingat_endat_start)ordernull_placement)r   array_sort_indicesrs   r   r^  )rl   r  
nulls_lastr6  r7  sorted_indicess         rZ   r  zArrowSeries.sort  sQ    '1|{4>J..KKu^
   !1!1.!ABBr\   c          	        dd l }ddlm} | j                  }| j                  j                         j                  d      }|j                  t        |j                        t        |      f|j                        }d||j                  |j                  t        |            f<   | | d| | d}	}|j                  D 
cg c]"  }
||	ij                  | | |
 | | |
       $ }}
|	|v r.|	gt        |D cg c]
  }||	k7  s	| c}      t        |      d  nt        |      t        |      d  }  |t         j"                  j%                  ||      | j&                  d	      j(                  | S c c}
w c c}w )
Nr   r1   encoder:  Nonenullr  Tr  )rh  r  r2   rh   rs   rk  dictionary_encoder   r   
dictionaryint8rn  r  getsortedri  r   r  r  rj   simple_select)rl   	separator
drop_firstrp  r2   rn   dar  null_col_panull_col_plvcolscoutput_orders                 rZ   
to_dummieszArrowSeries.to_dummies  s   <zz335GGQHHc"--&8#b'%BBGGL23

BIIc"g../&*VI;d#;vi[PT=U[
 ]]	
  +&**&A3'D6)QC)@
 
 d" D=qA,<=>s:?PQ
 c*o/0 	~HH   5MM"&
 -	' 	'
 >s   ?'E27
E7
E7
c               `    t        t        j                  | j                  ||      d   |      S )N)qinterpolationr   )r[   r   quantilers   )rl   rR  rQ  r  s       rZ   rR  zArrowSeries.quantile:  s-     'KKx}MaP
 	
r\   c                D    | j                  | j                  |d |         S rU   )r   rs   )rl   r-  offsets      rZ   gather_everyzArrowSeries.gather_everyF  s"      VYQY!788r\   c                   |t        | |      nd\  }}|t        | |      nd\  }}|/| j                  t        j                  | j                  |            S |/| j                  t        j
                  | j                  |            S | j                  t        j
                  t        j                  | j                  |      |            S )N)NN)r   r   r   min_element_wisers   max_element_wise)rl   r  r  r  loweruppers         rZ   clipzArrowSeries.clipI  s     2=1HN4-l 	5 2=1HN4-l 	5 =$$R%8%8e%LMM=$$R%8%8e%LMM   3 3DKK GO
 	
r\   c                6    | j                   j                         S rU   )rs   rk  rr   s    rZ   to_arrowzArrowSeries.to_arrow]  s    {{))++r\   c                  | j                         }t        d| j                  g      }| j                  |ddd      }|j	                  |j                  |      |j                  |      j                         j                  t        j                        k(        j                  | j                        }|dk(  r|j                  d      S |S )Nr  r  F)rn   r  r  r  )kindr  r:  )r   r#   rn   r  r  colr   	broadcastr    AGGREGATION
get_columnr  )rl   keepplxr  r  r   s         rZ   rN  zArrowSeries.mode`  s    ))+21tyykR	""e%% # 
 GGIwwy!%%'11x7K7K1LM
 *TYY
 	 "&v{{1~:F:r\   c                ^    | j                  t        j                  | j                              S rU   )r   r   	is_finiters   rr   s    rZ   rg  zArrowSeries.is_finitel  s       dkk!:;;r\   c                   | j                   j                  }| j                          j                  |j	                               j                  |      S )Nr  )rj   dtypesr  r   UInt32r  )rl   r  rj  s      rZ   	cum_countzArrowSeries.cum_counto  s>    %%%%fmmo6>>w>OOr\   c                   |s!t        j                  | j                  d      n,t        j                  | j                  d d d   d      d d d   }| j                  |      S r  )r   cumulative_minrs   r   rl   r  r   s      rZ   cum_minzArrowSeries.cum_mins  [      dkkd;""4;;tt#4FttL 	
   ((r\   c                   |s!t        j                  | j                  d      n,t        j                  | j                  d d d   d      d d d   }| j                  |      S r  )r   cumulative_maxrs   r   ro  s      rZ   cum_maxzArrowSeries.cum_max{  rq  r\   c                   |s!t        j                  | j                  d      n,t        j                  | j                  d d d   d      d d d   }| j                  |      S r  )r   cumulative_prodrs   r   ro  s      rZ   cum_prodzArrowSeries.cum_prod  s[      t{{t<##DKK"$5$G"M 	
   ((r\   c                  ||n|}t        | ||      \  }}|j                  d      j                  d dd       }|dk7  r&||j                  |      j                  dd d       z
  n|}|j	                  d      }||j                  |      j                  dd d       z
  }	| j                  t        j                  |	|k\  j                  |j                  d             }
|
j                  t        |d             S Nwindow_sizecenterFri  r  rX   r  r  r   r   r  r  r/  rl  r   r   r  rs   rf  rZ  rl   r{  min_samplesr|  padded_seriesrT  r  rolling_sumvalid_countcount_in_windowr   s              rZ   r  zArrowSeries.rolling_sum  s   %0%<k+ *4[QW Xv'''6@@$ A 
 a mmK(22TQU2VW 	 	 $--e-<%(9(9+(F(P(Pd$ )Q )
 
 ""JJ;6>>@R@RTXY
 ##E&$$788r\   c                  ||n|}t        | ||      \  }}|j                  d      j                  d dd       }|dk7  r&||j                  |      j                  dd d       z
  n|}|j	                  d      }||j                  |      j                  dd d       z
  }	| j                  t        j                  |	|k\  j                  |j                  d             |	z  }
|
j                  t        |d             S ry  r~  r  s              rZ   rolling_meanzArrowSeries.rolling_mean  s-   %0%<k+ *4[QW Xv'''6@@$ A 
 a mmK(22TQU2VW 	 	 $--e-<%(9(9+(F(P(Pd$ )Q )
 

 

$3;;[=O=OQU
  	 ##E&$$788r\   c               "   ||n|}t        | ||      \  }}|j                  d      j                  d dd       }|dk7  r&||j                  |      j                  dd d       z
  n|}t	        |d      j                  d      j                  d dd       }	|dk7  r&|	|	j                  |      j                  dd d       z
  n|	}
|j                  d      }||j                  |      j                  dd d       z
  }| j                  t        j                  ||k\  j                  |
|dz  |z  z
  j                  d             | j                  t        j                  ||z
  j                  d            z  }|j                  t        |d d             S )Nrz  Fri  r  r}  r   r<  )r   r  r  r/  powrl  r   r   r  rs   rX  rf  rZ  )rl   r{  r  r|  r2  r  rT  r  r  
cum_sum_sqrolling_sum_sqr  r  r   s                 rZ   rolling_varzArrowSeries.rolling_var  s    &1%<k+ *4[QW Xv'''6@@$ A 
 a mmK(22TQU2VW 	 	 q!WUW#YTITYB 	 a {+55ATX5YZ 	 	 $--e-<%(9(9+(F(P(Pd$ )Q )
 
 ""JJ K/77;>O#CDLL
 b11?T3I2Q2QSTUVW ##E&$$=>>r\   c               2    | j                  ||||      dz  S )N)r{  r  r|  r2        ?)r  )rl   r{  r  r|  r2  s        rZ   rolling_stdzArrowSeries.rolling_std  s0     '[VZ   	
r\   c                  |dk(  rd}t        |      |rdnd}|dk(  rdn|}| j                  dk  r| j                  j                         }n| j                  }t	        j
                  |      }t	        j                  |||      }t	        j                  |t        d |j                        |      }	| j                  |	      S )	Naveragez`rank` with `method='average' is not supported for pyarrow backend. The available methods are {'min', 'max', 'dense', 'ordinal'}.r  r3  ordinalfirst)   r   r   )	sort_keys
tiebreaker)r  r[  rs   rk  r   r  rankr  r   r  r   )
rl   methodr  r   r  r  rm   	null_maskr  r   s
             rZ   r  zArrowSeries.rank  s    YP  S/!+5<;	,2i,?V
   :- KK668M KKMJJ}-	ww}	jQIs4';TB  ((r\   c               j    t         j                  | |      j                  |      j                         S N)include_breakpoint)
_ArrowHistfrom_series	with_binsr  )rl   binsr  s      rZ   hist_from_binszArrowSeries.hist_from_bins  s-     ""4<N"OYt_XZ	
r\   c               j    t         j                  | |      j                  |      j                         S r  )r  r  with_bin_countr  )rl   	bin_countr  s      rZ   hist_from_bin_countzArrowSeries.hist_from_bin_count  s.     ""4<N"O^I&XZ	
r\   c              #  L   K   | j                   D ]  }t        |d        y w)NTr  )rs   r[   )rl   xs     rZ   __iter__zArrowSeries.__iter__  s(      	DA)!dCC	Ds   "$c                &   ddl m}m}m} 	 |t	        |      nt	        d | j
                        }t        t        j                  || j                        d      S # |||f$ r-}dt        |       d| j                   d}t        |      |d }~ww xY w)	Nr   )ArrowInvalidArrowNotImplementedErrorArrowTypeErrorr  Tr  z Unable to compare other of type z with series of type r   )pyarrowr  r  r  r   r  r[   r   r  rs   r  r   r'   )rl   r   r  r  r  other_excr   s           rZ   __contains__zArrowSeries.__contains__#  s    	
 	
	6#(#4SZ#d:TF*-  6G 	64T%[MAVW[WaWaVbbcdC',#5	6s   AA B#(BBc                r    | j                  t        j                  | j                  t	        |                  S rU   )r   r   logbrs   r   )rl   bases     rZ   logzArrowSeries.log3  s&      c$i!@AAr\   c                ^    | j                  t        j                  | j                              S rU   )r   r   exprs   rr   s    rZ   r  zArrowSeries.exp6  r  r\   c                ^    | j                  t        j                  | j                              S rU   )r   r   sqrtrs   rr   s    rZ   r  zArrowSeries.sqrt9  s       !566r\   c                    t        |       S rU   r   rr   s    rZ   dtzArrowSeries.dt<  s    +D11r\   c                    t        |       S rU   r	   rr   s    rZ   catzArrowSeries.cat@  s    &t,,r\   c                    t        |       S rU   r   rr   s    rZ   strzArrowSeries.strD      )$//r\   c                    t        |       S rU   r   rr   s    rZ   r]  zArrowSeries.listH  s    '--r\   c                    t        |       S rU   r   rr   s    rZ   structzArrowSeries.structL  r  r\   )rm   r8   rn   r  ro   rA   r  r=  )r  r8   )ro   rA   r  r.   )r~   r7   ry   r
  r  r.   )
r   zIterable[Any]r|   rB   rn   r  r   IntoDType | Noner  r.   )rX   r   r  r.   )r   zChunkedArrayAny | Anyr  zTypeIs[ChunkedArrayAny])r   r8   r|   rB   rn   r  r  r.   )r   rF   r|   rB   r  r.   )r~   r.   r  zSequence[Self])r  r4   )r   objectr  r.   )r   r   r  r.   )r  r.   )r  zpa.DataType)r  r
  r  ri  )r  zArrowSeries | list[bool | None]r  r.   )r  r
  r  r?  )r  r
  r  r   )r-  ri  r  r.   )r2  ri  r  r
  r  r?  )r  r
  r  float | None)r  r-   )r  r  )r_  z(SizedMultiIndexSelector[ChunkedArrayAny]r  r.   )r_  z_SliceIndex | ranger  r.   )rn  zint | Sequence[int]ro  r   r  r.   )r  z	list[Any]rU   )r   r   r{  zbool | Noner  rP   )rn   r  r  r.   )r  rC   )r  r
  r  r.   )r  ri  r  r.   )r  r
  r  r
  )r  r   r  r   r  rD   r  r.   )r   rG   r  r.   )r  
int | Noner  r   )
r  r
  r  r
  rn   z
str | Noner  r
  r  r2   )ru  r.   r   r.   r  r.   )
r-  r  r  r  r  r
  r  r  r  r.   )rX   r  r  r.   )rX   zSelf | NonNestedLiteralr  r  r  r  r  r.   r  r2   )r  zpd.Series[Any])r  r
  )r  rf   )r  r
  r  r
  )r(  r
  r  r.   )r,  z!Sequence[Any] | Mapping[Any, Any]r-  zSequence[Any]r.  r  r  r.   )r  r
  r9  r
  r  r.   )rE  r  rF  r
  r  r2   )rR  r?  rQ  rM   r  r
  r  r?  )r   )r-  ri  rT  ri  r  r.   )r  .Self | NumericLiteral | TemporalLiteral | Noner  r  r  r.   )r  r5   )rd  rH   r  rf   )r{  ri  r  ri  r|  r
  r  r.   )
r{  ri  r  ri  r|  r
  r2  ri  r  r.   )r  rL   r  r
  r  r.   )r  list[float]r  r
  r  r2   )r  ri  r  r
  r  r2   )r  zIterator[Any])r   r   r  r
  )r  r?  r  r.   )r  r   )r  r
   )r  r   )r  r   )r  r   )__name__
__module____qualname__r"   rS  rR  rp   propertyrs   rw   r   classmethodr   r   staticmethodr   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r  r  r  r  r   r  r   r$  r(  r/  r5  r8  rE  rJ  rL  rP  rV  rn   r`  rf  rw  rz  r}  r  r  r   r  r  r  r  r  r   r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r&  rO  r1  r  rN  rR  rU  r[  r]  rN  rg  rl  rp  rt  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r]  r  r%   ewm_mean__classcell__)rv   s   @rZ   rf   rf   }   s   $,,O , 7: EL 	  # #M DI#<@	  "&CC !	C
 C  C 
C C&+
 0 0 PR>">3B>JM>	> >
 
 

  $5
5
9
?9<6<<;;5:%:77>>KK&&9     04 LC 15 P 37 
 04 O 04 O 48 E 48 E 04 

:; ;? 

 ;? 

 15 V 59 
= 26 Q 59 

"  9
IY@'=$ =& &
 I I6)

Q 04 

 04 

&&-0&:H&	&2QR[ 7; RM<ME	R

'+
3=
JN
	
6N99 	9
 9 9 
9&B(B&(B *(B 	(B
 
(BTV6
=
<MLF 04 7. 
 ' 
,C'L #'



 2


  

 


9
C
 D
 
	
(,
;<P)))909:)?)?03)?=A)?IL)?	)?V

03
=A
IL
	
)0

8<
	


59
	
D6 B67 2 2 - - 0 0 . . 0 0  Hr\   rf   r8   c                  h    e Zd ZU ded<   ddZddZddZddZdd	 	 	 	 	 	 	 	 	 dd	Zdd
Z	ddZ
y)r  rf   _seriesc                    t         j                  j                  }| j                  j	                         j
                  j                  } | || j                        | j                        S r   )r   r  from_pydictr  r   
_dataframer}   _data)rl   tabler}   s      rZ   r  z_ArrowHist.to_frameX  sI    HH00ll99;FFRR5,dllCCr\   c                    | j                   j                  d      }t        d|j                               }|j                  dk(  S )NT)nan_is_nullzpa.BooleanArrayr   )rs   r  r   rk  false_count)rl   r  r  s      rZ   is_empty_seriesz_ArrowHist.is_empty_series_  s@     ++%%$%7$g&<&<&>?!##r\   c               l    | j                  |      }| j                  r| j                  |      |dS d|iS )N
breakpointrL  rL  )_zeros_breakpoint_calculate_breakpoint)rl   argrL  s      rZ   series_emptyz_ArrowHist.series_emptyi  s:    C "&"<"<S"AERRr\   c               f    t        |t              rt        |      S t        t        |      dz
        S )Nr:  )r   ri  r   r   )rl   r  s     rZ   r  z_ArrowHist._zeroso  s'    'S1uSzJuSX\7JJr\   r  )r  c               ,    ddl m}  |||||dk(        S )Nr   )linspacer  )rb  rc  numendpoint)rh  r  )rl   rb  endnum_samplesr  r  s         rZ   _linear_spacez_ArrowHist._linear_spacer  s     	#e#;SYIYZZr\   c                    t        j                  | j                        }|d   j                         |d   j                         }}||k(  r
|dz  }|dz  }| j	                  |||dz         S )z6Prepare bins for histogram calculation from bin_count.r  r   r  r:  )r   min_maxrs   ra   r  )rl   r  drY  rZ  s        rZ   _calculate_binsz_ArrowHist._calculate_bins~  se    JJt{{#x~~'5)9uE>SLESLE!!%	A>>r\   c           
     >   | j                   }t        d|      }t        |      dk(  rt        j                  t        j
                  |t        |d               t        j                  |t        |d                     }t        j                  |j                  t        j                                     }| j                  r
|d   g|gdS d|giS dd l}|j                  ||d	      }t        j                  t        j                  |t        |d               d|      }|j!                  |d
      \  }}|j#                  dt        |            }	|j%                  |	      }
||j'                  ||	         |
|j'                  |	|      <   | j                  r|dd  |
dS d|
iS )Nr  r<  r   r:  r   r  rL  r  )sideT)return_counts)rs   r   r   r   r  r   r   r   r$  r   uint8r  rh  searchsortedr  r   rO  r  
zeros_likeisin)rl   r  r   is_between_binsrL  rp  bin_indicesobs_cats
obs_countsobj_catsr  s              rZ   _calculate_histz_ArrowHist._calculate_hist  sm   kk
 M4(t9> gg  c$q'l3R]]3DQRG5UO FF?//
;<E'+BxjE7CCeW%% 	oodCfo=jj#s47|!<aM  "yyDyI*99QD	*x(.889T.Urwwx*+"&qr(V<<  r\   Nr  )r  r
  )r  int | list[float]r  rS   )r  r  r  zpa.Int64Array)
rb  r?  r  r?  r  ri  r  zLiteral['both', 'none']r  rP   )r  ri  r  rP   )r  zlist[float] | _1DArrayr  rS   )r  r  r  __annotations__r  r  r  r  r  r  r  rV   r\   rZ   r  r  S  sj     D$ K +1
[
[ 
[ 	
[ (
[ 

[? !r\   r  )r8   z-list[ScalarAny] | pa.Int64Array | list[float])rX   z$pa.Scalar[_BasicDataType[_AsPyType]]rY   r
  r  r>   )rX   zpa.Scalar[pa.StructType]rY   r
  r  zlist[dict[str, Any]])rX   z1pa.Scalar[pa.ListType[_BasicDataType[_AsPyType]]]rY   r
  r  zlist[_AsPyType])rX   zpa.Scalar[Any] | AnyrY   r
  r  r   )rX   r   rY   r
  r  r   )n
__future__r   typingr   r   r   r   r   r  r   pyarrow.computecomputer   narwhals._arrow.series_catr
   narwhals._arrow.series_dtr   narwhals._arrow.series_listr   narwhals._arrow.series_strr   narwhals._arrow.series_structr   narwhals._arrow.utilsr   r   r   r   r   r   r   r   r   r   r   narwhals._compliantr   r   narwhals._expression_parsingr    narwhals._typing_compatr!   narwhals._utilsr"   r#   r$   r%   narwhals.dependenciesr&   narwhals.exceptionsr'   r(   collections.abcr)   r*   r+   r,   typesr-   r  r  r  r  typing_extensionsr.   r/   r0   r  r2   r   r4   narwhals._arrow.typingr5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   narwhals._compliant.seriesr@   rA   rB   narwhals.dtypesrC   narwhals.typingrD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   r  r[   rf   r  rV   r\   rZ   <module>r     s   " > >   > B @ A D    = 1 0  4 AEE 9988    48%    & 	S 9  
/  
 
#  
 
<  
 
 	 
S!+/0 S!lT!VWT!r\   