
    /_iõ                       U d dl mZ d dlmZ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#m$Z$ d d
l%m&Z&m'Z' d dl(m)Z) d dl*m+Z+m,Z,m-Z-m.Z.m/Z/ d dl0m1Z1 d dl2m3Z3m4Z4 erd dl5m6Z6m7Z7m8Z8 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lUmVZV d dl*mWZWmXZX d dlYmZZZ d dl[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CallableLiteralcastoverloadNArrowSeriesCatNamespaceArrowSeriesDateTimeNamespaceArrowSeriesListNamespaceArrowSeriesStringNamespaceArrowSeriesStructNamespace)arange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)assert_never)Implementationgenerate_temporary_column_name
is_list_of
no_defaultnot_implemented)is_numpy_array_1d)InvalidOperationError
ShapeError)IterableIteratorSequence)
ModuleType)Self	TypeAliasTypeIsArrowDataFrameArrowNamespace)ArrayAnyArrayOrChunkedArrayArrayOrScalarChunkedArrayAny
IncompleteNullPlacementOrder	ScalarAny
TieBreaker	_AsPyType_BasicDataType)HistData)	NoDefault)Version_LimitedContext)DType)ClosedIntervalFillNullStrategyInto1DArray	IntoDTypeModeKeepStrategyNonNestedLiteralPythonLiteral
RankMethodRollingInterpolationMethodSizedMultiIndexSelector_1DArray_2DArray_SliceIndexzHHistData[ChunkedArrayAny, list[ScalarAny] | pa.Int64Array | list[float]]r0   ArrowHistDatac                     y N valuereturn_py_scalars     U/var/www/html/land_sniper/venv/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
ddZ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/dd0Z0dd1Z1d.d/dd2Z2d.d/dd3Z3d.d/dd4Z4d.d/dd5Z5d.d/dd6Z6d.d/dd7Z7d.d/dd8Z8d.d/dd9Z9d.d/dd:Z:dd;Z;dd<Z<d.d/dd=Z=d.d/dd>Z>d.d/dd?Z?d.d/dd@Z@d.d/ddAZAd.d/ddBZBddCZCeddD       ZDddEZEddFZFddGZGddHZHdd
dIddJZIdd
dIddKZJddLZKeddM       ZLddNZMddOZNddPZOddQZPddRZQddSZRd.d/ddTZSd.d/ddUZT	 	 	 	 	 	 	 	 ddVZUddWZVddXZWddYZXd.d/ddZZYdd[ZZdd\Z[dd]Z\dd^Z]ddd_Z^	 	 	 	 	 	 	 	 	 	 dd`Z_ddaZ`	 	 	 	 	 	 	 	 	 	 ddbZaddcZb	 	 	 	 	 	 	 	 dddZcddeZdddfZeddgZfddhZgddiZhddjZiddkZjd.dlddmZk	 	 	 	 	 	 	 	 	 	 ddnZlddoZmddpZnd.d/	 	 	 	 	 	 	 ddqZodddrZpddsZqddtZrdduZsddvZtddwZuddxZvddyZwddzZxdd{Zydd|Zzdd}Z{dd~Z|	 	 	 	 	 	 	 	 	 	 ddZ}	 	 	 	 	 	 	 	 	 	 ddZ~ddZ	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZddZddZddZddZddZddZd.d/	 	 	 	 	 ddZedd       Ze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\   c                    t        | |      \  }}| j                  xr t        |dd      }| j                   |||      |      j	                  | j
                        S Nrk   Trx   )r   rk   rd   r   aliasrn   )rl   opotherserother_nativery   s         rZ   _with_binaryzArrowSeries._with_binary   s^    *47\!__Sd1S  sL!6H ! 

%		
	r\   c                `    | j                  fd|      j                  | j                        S )Nc                     ||       S rU   rV   )xyr   s     rZ   rc   z0ArrowSeries._with_binary_right.<locals>.<lambda>   s    bAh r\   )r   r   rn   )rl   r   r   s    ` rZ   _with_binary_rightzArrowSeries._with_binary_right   s&      !6>DDTYYOOr\    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        d t        ||      D              	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   | ]  \  }}|j                   r|  y wrU   )rk   ).0lengthss      rZ   	<genexpr>z4ArrowSeries._align_full_broadcast.<locals>.<genexpr>   s      
 vqF
s   c              3  (   K   | ]	  }|k(    y wrU   rV   )r   _lentarget_lengths     rZ   r   z4ArrowSeries._align_full_broadcast.<locals>.<genexpr>   s     B$-Bs   r   zExpected object of length z, got .)lenmaxzipallrk   r   r   repeatrs   r*   append)
r   r~   r   lengths	fast_pathreshaped	compliant
actual_lenmsgr   s
            @rZ   _align_full_broadcastz!ArrowSeries._align_full_broadcast   s    #)*a3q6** 
$'$8
 
 B'BB	M 	'A||NN299QXXa[-+PQ	 #A&*=82=/
|STU o%	OOI&	' # +s   Cc                4    ddl m}  || j                        S )Nr   r4   )ro   )narwhals._arrow.namespacer5   rj   )rl   r5   s     rZ   __narwhals_namespace__z"ArrowSeries.__narwhals_namespace__   s    <dmm44r\   c                B    | j                  t        j                  |      S rU   )r   pcequalrl   r   s     rZ   __eq__zArrowSeries.__eq__         511r\   c                B    | j                  t        j                  |      S rU   )r   r   	not_equalr   s     rZ   __ne__zArrowSeries.__ne__   s      u55r\   c                B    | j                  t        j                  |      S rU   )r   r   greater_equalr   s     rZ   __ge__zArrowSeries.__ge__   s      !1!1599r\   c                B    | j                  t        j                  |      S rU   )r   r   greaterr   s     rZ   __gt__zArrowSeries.__gt__   s      U33r\   c                B    | j                  t        j                  |      S rU   )r   r   
less_equalr   s     rZ   __le__zArrowSeries.__le__         66r\   c                B    | j                  t        j                  |      S rU   )r   r   lessr   s     rZ   __lt__zArrowSeries.__lt__   s      %00r\   c                B    | j                  t        j                  |      S rU   )r   r   
and_kleener   s     rZ   __and__zArrowSeries.__and__   r   r\   c                B    | j                  t        j                  |      S rU   )r   r   r   r   s     rZ   __rand__zArrowSeries.__rand__   s    &&r}}e<<r\   c                B    | j                  t        j                  |      S rU   r   r   	or_kleener   s     rZ   __or__zArrowSeries.__or__       &&r||U;;r\   c                B    | j                  t        j                  |      S rU   r   r   s     rZ   __ror__zArrowSeries.__ror__   r   r\   c                B    | j                  t        j                  |      S rU   )r   r   addr   s     rZ   __add__zArrowSeries.__add__  s      //r\   c                B    | j                  t        j                  |      S rU   )r   r   r   r   s     rZ   __radd__zArrowSeries.__radd__  s    &&rvvu55r\   c                B    | j                  t        j                  |      S rU   )r   r   subtractr   s     rZ   __sub__zArrowSeries.__sub__        e44r\   c                B    | j                  t        j                  |      S rU   )r   r   r   r   s     rZ   __rsub__zArrowSeries.__rsub__      &&r{{E::r\   c                B    | j                  t        j                  |      S rU   )r   r   multiplyr   s     rZ   __mul__zArrowSeries.__mul__  r   r\   c                B    | j                  t        j                  |      S rU   )r   r   r   r   s     rZ   __rmul__zArrowSeries.__rmul__  r   r\   c                B    | j                  t        j                  |      S rU   )r   r   powerr   s     rZ   __pow__zArrowSeries.__pow__  r   r\   c                B    | j                  t        j                  |      S rU   )r   r   r   r   s     rZ   __rpow__zArrowSeries.__rpow__  s    &&rxx77r\   c                .    | j                  t        |      S rU   )r   r   r   s     rZ   __floordiv__zArrowSeries.__floordiv__  s      %88r\   c                .    | j                  t        |      S rU   )r   r   r   s     rZ   __rfloordiv__zArrowSeries.__rfloordiv__  s    &&>>r\   c                (    | j                  d |      S )Nc                :    t        j                  t        | |       S rU   r   divider   r   r   s     rZ   rc   z)ArrowSeries.__truediv__.<locals>.<lambda>!  s    bii9I!Q9O.P r\   )r   r   s     rZ   __truediv__zArrowSeries.__truediv__   s      !PRWXXr\   c                (    | j                  d |      S )Nc                :    t        j                  t        | |       S rU   r   r   s     rZ   rc   z*ArrowSeries.__rtruediv__.<locals>.<lambda>%  s    $4Q$:; r\   )r   r   s     rZ   __rtruediv__zArrowSeries.__rtruediv__#  s    &&;U
 	
r\   c                    | j                   xr t        |dd      }| |z  j                  }t        | |      \  }}t	        j
                  |t	        j                  ||            }| j                  ||      S r   rk   rd   rs   r   r   r   r   r   rl   r   ry   	floor_divr   ress         rZ   __mod__zArrowSeries.__mod__(  sk    !__Sd1SU]**	#D%0
Ukk#r{{9e<=  9K LLr\   c                    | j                   xr t        |dd      }|| z  j                  }t        | |      \  }}t	        j
                  |t	        j                  ||            }| j                  ||      S r   r  r  s         rZ   __rmod__zArrowSeries.__rmod__/  sk    !__Sd1Sd]**	#D%0
Ukk%Y!<=  9K LLr\   c                b    | j                  t        j                  | j                        d      S NTrx   )r   r   invertrs   rr   s    rZ   
__invert__zArrowSeries.__invert__6  %      4;;!7D QQr\   c                .    | j                   j                  S rU   )rs   typerr   s    rZ   _typezArrowSeries._type9  s    {{r\   T)_return_py_scalarc               @    t        t        | j                        |      S rU   )r[   r   rs   rl   r  s     rZ   r   zArrowSeries.len=  s    &s4;;'79JKKr\   c                    t        |t              st        | |      \  }}n|}| j                  | j                  j                  |            S rU   )r%   boolr   r   rs   filter)rl   	predicate_r   s       rZ   r  zArrowSeries.filter@  sA    )T*,T9=OA|$L  !3!3L!ABBr\   c               f    t        | j                        r| j                  d   nd }t        ||      S Nr   )r   rs   r[   )rl   r  r   s      rZ   firstzArrowSeries.firstH  s*    #&t{{#3Q&v/@AAr\   c               `    | j                   }t        |      x}r||dz
     nd }t        ||      S N   )rs   r   r[   )rl   r  caheightr   s        rZ   lastzArrowSeries.lastL  s6    [[.1"g$5F$5FQJD&v/@AAr\   c               T    t        t        j                  | j                        |      S rU   )r[   r   meanrs   r  s     rZ   r%  zArrowSeries.meanQ  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.medianT  sD    zz$$&PC',,&!!$++.0A
 	
r\   c               T    t        t        j                  | j                        |      S rU   )r[   r   minrs   r  s     rZ   r+  zArrowSeries.min]      &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_minc  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_maxg  r2  r\   c               X    t        t        j                  | j                  d      |      S Nr   	min_count)r[   r   sumrs   r  s     rZ   r:  zArrowSeries.sumk  $    &FF4;;!,.?
 	
r\   c                T    | j                  | j                  j                               S rU   )r   rs   	drop_nullrr   s    rZ   
drop_nullszArrowSeries.drop_nullsp  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 r  )r   rs   chunksr   r   concat_arrays)rl   narrayss      rZ   shiftzArrowSeries.shifts  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   rG  r  s      rZ   stdzArrowSeries.std|  s$    &IIdkk-/@
 	
r\   c               X    t        t        j                  | j                  |      |      S rF  )r[   r   variancers   rI  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   r   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   rO  rP     rQ  rR  )rl   r  rT  rU  rV  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   r`  zArrowSeries.count  s    &rxx'<>OPPr\   c               t    t        t        j                  | j                  j	                         d      |      S )Nr   )mode)r[   r   r`  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   rn  )rl   rs  rv  rw  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_indicesrr  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   rets      rZ   r   zArrowSeries.alias  s.    nnT[[tT]]nK
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_nulls)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                ^    | j                  t        j                  | j                              S rU   )r   r   floorrs   rr   s    rZ   r  zArrowSeries.floor	  s       $++!677r\   c                ^    | j                  t        j                  | j                              S rU   )r   r   ceilrs   rr   s    rZ   r  zArrowSeries.ceil         !566r\   c                z    | j                  t        j                  | j                  j	                                     S rU   )r   r   pairwise_diffrs   r  rr   s    rZ   diffzArrowSeries.diff  s+      !1!1$++2L2L2N!OPPr\   c               X    t        t        j                  | j                  d      |      S r7  )r[   r   anyrs   r  s     rZ   r  zArrowSeries.any  r;  r\   c               X    t        t        j                  | j                  d      |      S r7  )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 r  )r   rs   is_nullrr   s    rZ   r  zArrowSeries.is_null5  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_nan8  r  r\   c                    t        || j                        }| j                  t        j                  | j
                  |      d      S r  )r   rj   r   r   r   rs   )rl   r   	data_types      rZ   r   zArrowSeries.cast;  s8    ,UDMMB	  i!@UY ZZr\   c               B    t        | j                  j                  |      S rU   )r[   rs   
null_countr  s     rZ   r  zArrowSeries.null_count?  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   rn  r   r   rl   rB  num_rowss      rZ   headzArrowSeries.headB  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   rn  r   r  r  s      rZ   tailzArrowSeries.tailH  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   r~  r   r   is_inrs   )rl   r   r  s      rZ   r  zArrowSeries.is_inN  s@    ??5!-2II  $++!KLLr\   c                |    dd l }|j                  | j                        }| j                  || j                  |       S )Nr   r{   )r|  flatnonzerors   r   rn   )rl   r  r  s      rZ   arg_truezArrowSeries.arg_trueU  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.item[  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   r2   r/  
proportionr`  r  r9   countsnames
descendingTro   validate_column_names)narwhals._arrow.dataframer3   rh   r   value_countsrs   fieldr   r   r   r:  r   Tablefrom_arrayssort_byrj   )rl   sortparallelrn   	normalizer3   index_name_value_name_
val_countsr  r  rC  	val_counts                rZ   r  zArrowSeries.value_countsf  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   r  r   r   if_else)rl   r  r   conds       rZ   zip_withzArrowSeries.zip_with  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)
r|  r   r}  randomdefault_rngr   choicer   rs   rr  )
rl   rB  fractionwith_replacementr  r  r  rngidxr  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                B   dd}| j                   }|&t        | |      \  }}t        j                  ||      }nU|0|dk(  rt        j                  |      nt        j
                  |      }n#|dk(  r	 |||      n ||d d d   |      d d d   }| j                  |d      S )Nc                   t        d      }t        j                  |       }t        dt	        |       d      }t        j
                  t        j                  |||            }t        j                  ||      }t        j                  ||d       }t        j                  t        j                  ||      t        |            }t        j                  t        j                  ||      | | j                  |            S )Nr  r   r   )r   r   is_validr   r   cumulative_maxr  r   r   r   or_rr  )arrlimitsentinelis_not_nullr/  index_not_nullnot_oobbeyond_limits           rZ   fill_null_forward_limitz6ArrowSeries.fill_null.<locals>.fill_null_forward_limit  s     2wH++c*K1c#h*E..rzz+uh/WXN ll>8<GZZFN::bkk%&H#e*UL::{L138P r\   forwardr  Trx   )r  r9   r  r}  returnr6   )rs   r   r   	fill_nullfill_null_forwardfill_null_backwardr   )	rl   rX   strategyr  r  rs   r  native_valuer~   s	            rZ   r  zArrowSeries.fill_null  s    	" ,T59OA|$&LL$FF] y( $$V,**62  y( (6,VDbD\5A$B$G 
   D AAr\   c                    ddl m} t        j                  j	                  | j
                  g| j                  g      } ||| j                  d      S )Nr   r2   r  Fr  )r  r3   r   r  r  rs   rn   rj   )rl   r3   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r|  r   r~  r   r   r$   rn   r  r  rs   append_columngroup_by	aggregatecolumnr   r   r  )rl   r  
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   r  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   rc  )rl   r:  s     rZ   rc  zArrowSeries.unique   s       !3!3!566r\   c               V   t        j                  | j                  t        j                  |            }t        j
                  |      }t        j                  t        j                  |      |      }|%|j                  t        || j                              }| j                  |      }|t        u rt        j                  t        j
                  | j                        t        j                  |            }	t        t        j                  |	d      d      rN| j!                  | j                  |	            j#                  d      j%                         }
d|
 }t'        |      |S t)        ||      \  }}| j                  t        j*                  ||j                  |            }|S )Nr   r8  Tr  Fr9  zYreplace_strict did not replace all non-null values.

The following did not get replaced: )r   index_inrs   r   r~  r  rr  r   r   rj   r   r&   and_r  r[   r  r  rc  r  r)   r   r  )rl   defaultoldnewreturn_dtypeidxswas_matchedresult_nativer   unmatched_maskunmatched_valuesr   s               rZ   replace_strictzArrowSeries.replace_strict  sZ    {{4;;6kk$'t4#)..(t}}EM ""=1j   WWR[[%=ryy?UVN&~3d KK 1 1. ABV5V1WY !;;K:LN  ,C00 	 &4FG%D"M7 &&rzz+v}}g'VWF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   rr  )rl   r  
nulls_lastrM  rN  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   r2   encoder   Nonenullr  Tr  )r|  r  r3   rh   rs   r  dictionary_encoder   r   
dictionaryint8r  r   getsortedr}  r   r  r  rj   simple_select)rl   	separator
drop_firstr  r3   rn   dar'  null_col_panull_col_plvcolscoutput_orders                 rZ   
to_dummieszArrowSeries.to_dummies6  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   ri  rh  r  s       rZ   ri  zArrowSeries.quantileW  s-     'KKx}MaP
 	
r\   c                D    | j                  | j                  |d |         S rU   )r   rs   )rl   rB  offsets      rZ   gather_everyzArrowSeries.gather_everyc  s"      VYQY!788r\   c                    t        | |      \  }}t        | |      \  }}| j                  t        j                  t        j                  | j
                  |      |            S rU   )r   r   r   max_element_wisemin_element_wisers   )rl   r  r  r  loweruppers         rZ   clipzArrowSeries.clipf  sV    !$45!$45   3 3DKK GO
 	
r\   c                ~    t        | |      \  }}| j                  t        j                  | j                  |            S rU   )r   r   r   rn  rs   )rl   r  r  rp  s       rZ   
clip_lowerzArrowSeries.clip_lowerm  4    !$45  !4!4T[[%!HIIr\   c                ~    t        | |      \  }}| j                  t        j                  | j                  |            S rU   )r   r   r   ro  rs   )rl   r  r  rq  s       rZ   
clip_upperzArrowSeries.clip_upperq  ru  r\   c                6    | j                   j                         S rU   )rs   r  rr   s    rZ   to_arrowzArrowSeries.to_arrowu  s    {{))++r\   c               z   | j                         }t        d| j                  g      }| j                  |ddd      }|j	                  |j                  |      |j                  |      j                         j                         k(        j                  | j                        }|dk(  r|j                  d      S |S )Nr$  r%  F)rn   r  r  r  r  r   )
r   r$   rn   r  r  colr   	broadcast
get_columnr  )rl   keepplxr/  r  r   s         rZ   rb  zArrowSeries.modex  s    ))+21tyykR	""e%% # 
 GGI#'')"4"8"8":"D"D"FF

*TYY
 	 "&v{{1~:F:r\   c                ^    | j                  t        j                  | j                              S rU   )r   r   	is_finiters   rr   s    rZ   r  zArrowSeries.is_finite  s       dkk!:;;r\   c                   | j                   j                  }| j                          j                  |j	                               j                  |      S )Nr  )rj   dtypesr  r   UInt32r  )rl   r  r  s      rZ   	cum_countzArrowSeries.cum_count  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_min  [      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   r  rs   r   r  s      rZ   cum_maxzArrowSeries.cum_max  r  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   r  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centerFr  r  rX   r  r  r   r   r  r  rD  r  r   r   r  rs   rz  rn  rl   r  min_samplesr  padded_seriesrk  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 r  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 )Nr  Fr  r  r  r   rP  )r   r  r  rD  powr  r   r   r  rs   rn  rz  rn  )rl   r  r  r  rG  r  rk  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  rG        ?)r  )rl   r  r  r  rG  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  rJ  ordinalr  )   r   r   )	sort_keys
tiebreaker)r  ro  rs   r  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   r   s     rZ   __iter__zArrowSeries.__iter__6  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ArrowTypeError)r  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.logJ  s&      c$i!@AAr\   c                ^    | j                  t        j                  | j                              S rU   )r   r   exprs   rr   s    rZ   r  zArrowSeries.expM  r  r\   c                ^    | j                  t        j                  | j                              S rU   )r   r   sqrtrs   rr   s    rZ   r  zArrowSeries.sqrtP  r  r\   c                ^    | j                  t        j                  | j                              S rU   )r   r   sinrs   rr   s    rZ   r  zArrowSeries.sinS  r  r\   c               b    |r| j                         j                         S | j                         S rU   )r>  r  )rl   ignore_nullsr  s      rZ   	any_valuezArrowSeries.any_valueV  s'     -9t &&(JdjjlJr\   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.strc      )$//r\   c                    t        |       S rU   r   rr   s    rZ   rq  zArrowSeries.listg  s    '--r\   c                    t        |       S rU   r   rr   s    rZ   structzArrowSeries.structk  r  r\   )rm   r9   rn   r  ro   rC   r  rT  )r  r9   )ro   rC   r  r/   )r~   r8   ry   r  r  r/   )r   zCallable[..., ArrayOrScalar]r   r   r  r/   )
r   zIterable[Any]r|   rD   rn   r  r   IntoDType | Noner  r/   )rX   r   r  r/   )r   zChunkedArrayAny | Anyr  zTypeIs[ChunkedArrayAny])r   r9   r|   rD   rn   r  r  r/   )r   rH   r|   rD   r  r/   )r~   r/   r  zSequence[Self])r  r5   )r   objectr  r/   )r   r   r  r/   )r  r/   )r  zpa.DataType)r  r  r  r}  )r  zArrowSeries | list[bool | None]r  r/   )r  r  r  rL   )r  r  r  rS  )r  r  r  r   )rB  r}  r  r/   )rG  r}  r  r  r  rS  )r  r  r  float | None)r  r.   )r  r  )rs  z(SizedMultiIndexSelector[ChunkedArrayAny]r  r/   )rs  z_SliceIndex | ranger  r/   )r  zint | Sequence[int]r  r   r  r/   )r  z	list[Any]rU   )r   r   r  zbool | Noner  rP   )rn   r  r  r/   )r  rE   )r  r  r  r/   )r  r}  r  r/   )r  r  r  r  )r  r   r  r   r  rF   r  r/   )r   rI   r  r/   )r/  
int | Noner  r   )
r  r  r  r  rn   z
str | Noner  r  r  r3   )r  r/   r   r/   r  r/   )
rB  r  r  r  r  r  r  r  r  r/   )rX   r  r  r/   )rX   zSelf | NonNestedLiteralr  zFillNullStrategy | Noner  r  r  r/   r  r3   )r  zpd.Series[Any])r  r  )r  rf   )r  r  r  r  )r:  r  r  r/   )
r?  zAny | NoDefaultr@  Sequence[Any]rA  r  rB  r  r  r/   )r  r  rP  r  r  r/   )r\  r  r]  r  r  r3   )ri  rS  rh  rN   r  r  r  rS  )r   )rB  r}  rk  r}  r  r/   )r  r/   r  r/   r  r/   )r  r/   r  r/   )r  r/   r  r/   )r  r6   )r~  rJ   r  rf   )r  r}  r  r}  r  r  r  r/   )
r  r}  r  r}  r  r  rG  r}  r  r/   )r  rM   r  r  r  r/   )r  list[float]r  r  r  r3   )r  r}  r  r  r  r3   )r  zIterator[Any])r   r   r  r  )r  rS  r  r/   )r  r  r  r  r  rL   )r  r   )r  r   )r  r   )r  r   )r  r   )__name__
__module____qualname__r#   rg  rf  rp   propertyrs   rw   r   r   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   r1  r5  r:  r>  rD  rJ  rM  rY  r^  r`  rd  rj  rn   rt  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   r"  r1  r5  r8  rc  rH  r  re  ri  rl  rr  rt  rw  ry  rb  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rq  r  r'   ewm_mean__classcell__)rv   s   @rZ   rf   rf   }   sf   $,,O , 7: EL 	  # #M DI#<@	P  "&CC !	C
 C  C 
C C&+
 0 0 PR>">3B>JM>	> >
 
 

  (5
26:4717=<<065;5;289?Y

MMR     04 LC 26 B 15 B
 15 P 37 
 04 O 04 O 48 E 48 E 04 

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

 ;? 

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

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

87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RV6
=
<MLF 04 7( ( ( 	( '( 
(TC'L #'



 2


  

 


9
JJ,	;<P)))909:)?)?03)?=A)?IL)?	)?V

03
=A
IL
	
)0

8<
	


59
	
D6 B676 @DK#K8<K	K
 2 2 - - 0 0 . . 0 0  Hr\   rf   r9   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_framew  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   r  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
breakpointr`  r`  )_zeros_breakpoint_calculate_breakpoint)rl   argr`  s      rZ   series_emptyz_ArrowHist.series_empty  s:    C "&"<"<S"AERRr\   c               f    t        |t              rt        |      S t        t        |      dz
        S r  )r   r}  r   r   )rl   r  s     rZ   r  z_ArrowHist._zeros  s'    'S1uSzJuSX\7JJr\   r  )r  c               ,    ddl m}  |||||dk(        S )Nr   )linspacer  )rv  rw  numendpoint)r|  r  )rl   rv  endnum_samplesr  r  s         rZ   _linear_spacez_ArrowHist._linear_space  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  drp  rq  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  rP  r   r   r  r  r`  r  )sideT)return_counts)rs   r   r   r   r>  r   r   r   r:  r   uint8r  r|  searchsortedr  r   rc  r   
zeros_likeisin)rl   r  r   is_between_binsr`  r  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)
rv  rS  r  rS  r  r}  r  zLiteral['both', 'none']r  rP   )r  r}  r  rP   )r  zlist[float] | _1DArrayr  rS   )r  r  r  __annotations__r  r  r  r  r  r  r  rV   r\   rZ   r  r  r  sj     D$ K +1
[
[ 
[ 	
[ (
[ 

[? !r\   r  )r9   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  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   r   narwhals._compliantr    r!   narwhals._typing_compatr"   narwhals._utilsr#   r$   r%   r&   r'   narwhals.dependenciesr(   narwhals.exceptionsr)   r*   collections.abcr+   r,   r-   typesr.   r  r  r  r  typing_extensionsr/   r0   r1   r  r3   r   r5   narwhals._arrow.typingr6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   narwhals._compliant.seriesrA   narwhals._typingrB   rC   rD   narwhals.dtypesrE   narwhals.typingrF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   r  r[   rf   r  rV   r\   rZ   <module>r2     s   " H H   > B @ A D    = 0  4 A<< 9988    4*8%   " 	S 9  
/  
 
#  
 
<  
 
 	 
r!+/0 r!jT!VWT!r\   