
    hh                       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# 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l0m1Z1 d dl2m3Z3m4Z4 erd dl5m6Z6m7Z7m8Z8m9Z9 d dl:m;Z; d dl<Z=d dl>Z?d dl@mAZAmBZBmCZC d dlDmEZE d dlFmGZG d dlHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZS d dlTmUZU d dl+mVZVmWZW d dlXmYZY d dlZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZi dZjdekd<   ed4d#            Zled5d&            Zled6d)            Zled7d,            Zld8d-Zl G d. d/e%d0                   Zm G d1 d2e&d3                   ZndS )9    )annotations)TYPE_CHECKINGAnyCallable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]]r0   ArrowHistDatavalue$pa.Scalar[_BasicDataType[_AsPyType]]return_py_scalarboolreturnr?   c                    d S N rU   rW   s     M/var/www/histauto/venv/lib/python3.11/site-packages/narwhals/_arrow/series.pymaybe_extract_py_scalarr_   Y   s	         pa.Scalar[pa.StructType]list[dict[str, Any]]c                    d S r[   r\   r]   s     r^   r_   r_   `   s	     3r`   1pa.Scalar[pa.ListType[_BasicDataType[_AsPyType]]]list[_AsPyType]c                    d S r[   r\   r]   s     r^   r_   r_   g   s	     cr`   pa.Scalar[Any] | Anyr   c                    d S r[   r\   r]   s     r^   r_   r_   n   s	     #r`   c                z     t           r                                 S |r t           d fd                      S  S )Nas_pyc                      S r[   r\   )rU   s   r^   <lambda>z)maybe_extract_py_scalar.<locals>.<lambda>y   s    u r`   )r   rj   getattrr]   s   ` r^   r_   r_   u   sF     {{}} 85wug}}}}55777Lr`   c                      e Zd Zej        Zdd	Zedd
            ZddZ	ddddZ
d dZd dZeddddd#            Zd fd%Zedd)            Zedd*dd+            Zedd-            Zedd/            Zdd1Zdd3Zdd4Zd	d5Zd	d6Zd	d7Zd	d8Zd	d9Zd	d:Zd	d;Zd	d<Zd	d=Z d	d>Z!d	d?Z"d	d@Z#d	dAZ$d	dBZ%d	dCZ&d	dDZ'd	dEZ(d	dFZ)d	dGZ*d	dHZ+d	dIZ,d	dJZ-d
dKZ.eddM            Z/dNdOddRZ0ddUZ1dNdOddWZ2dNdOddXZ3dNdOddZZ4dNdOdd[Z5dNdOdd\Z6dNdOdd]Z7dNdOdd^Z8dNdOdd_Z9dNdOdd`Z:d
daZ;ddcZ<dNdOddeZ=dNdOddfZ>dNdOddhZ?dNdOddiZ@dNdOddjZAdNdOddkZBddmZCeddn            ZDddqZEddsZFddwZGddyZHdddzdd~ZIdddzddZJddZKedd            ZLd
dZMddZNddZOd
dZPd
dZQd
dZRdNdOd dZSdNdOd dZTd!dZUd
dZVd
dZWd"dZXdNdOddZYddZZddZ[d	dZ\d
dZ]dd#dZ^d$dZ_d%dZ`d&dZad'dZbd(dZcd)dZdd*dZed+dZfd,dZgd
dZhd
dZid-dZjdNdd.dZkd/dZld0dĄZmd1dǄZndNdOd2d˄Zod3d4d΄Zpd5dЄZqd6d҄Zrd7dՄZsd
dքZtddׄZudd؄ZvddلZwddڄZxd8dބZyd8d߄Zzd9dZ{d9dZ|d:dZ}d;dZ~d<dZd=dZd>dZd?dZd
dZd
dZed@d            ZedAd            ZedBd            ZedCd            ZedDd            Z e            Z xZS (E  ArrowSeriesnative_seriesr9   namestrversionrB   rY   Nonec               >    || _         || _        || _        d| _        d S )NF)_name_native_series_version
_broadcast)selfrp   rq   rs   s       r^   __init__zArrowSeries.__init__   s%     
/<r`   c                    | j         S r[   )rw   rz   s    r^   nativezArrowSeries.native   s    ""r`   r/   c                F    |                      | j        | j        |          S N)rq   rs   )	__class__r~   rv   )rz   rs   s     r^   _with_versionzArrowSeries._with_version   s    ~~dk
G~LLLr`   Fpreserve_broadcastseriesr8   r   rX   c               v    |                      t          |          | j        |           }|r| j        |_        |S )Nrq   context)from_nativer   rq   ry   )rz   r   r   results       r^   _with_nativezArrowSeries._with_native   s@     !!-"7"7diQU!VV 	0 $Fr`   opCallable[..., ArrayOrScalar]otherr   c                    t          | |          \  }}| j        ot          |dd          }|                      |||          |                              | j                  S Nry   Tr   )r   ry   rm   r   aliasrq   )rz   r   r   serother_nativer   s         r^   _with_binaryzArrowSeries._with_binary   sm    *477\!_Sd1S1S  BsL!!6H ! 
 

%	

	r`   c                f    |                      fd|                              | j                  S )Nc                     ||           S r[   r\   )xyr   s     r^   rl   z0ArrowSeries._with_binary_right.<locals>.<lambda>   s    bbAhh r`   )r   r   rq   )rz   r   r   s    ` r^   _with_binary_rightzArrowSeries._with_binary_right   s3      !6!6!6!6>>DDTYOOOr`    N)rq   dtypedataIterable[Any]r   rC   r   IntoDType | Nonec               "   |j         }|_t          ||          }t          |          r|                    |          }d }|                     |          r|nt          |g|          }nt          |g          }|                     |||          S )N)r   rq   )rx   r   r   r   
_is_nativer   r   )clsr   r   rq   r   rs   dtype_par~   s           r^   from_iterablezArrowSeries.from_iterable   s     "+CE7+S+SH!$''  yy** ^^D11VTT}dVX7V7VFF"D6**FvwTBBBr`   rU   c                    t          |d          r|                                }t                                          |          S )Nrj   )hasattrrj   super_from_scalar)rz   rU   r   s     r^   r   zArrowSeries._from_scalar   s:    5'"" 	"KKMMEww##E***r`   objChunkedArrayAny | AnyTypeIs[ChunkedArrayAny]c                6    t          | t          j                  S r[   )
isinstancepaChunkedArray)r   s    r^   r   zArrowSeries._is_native   s    #r///r`   rq   c              (     | ||j         |          S )N)rs   rq   )rx   )r   r   r   rq   s       r^   r   zArrowSeries.from_native   s     s4!1====r`   rG   c              T    |                      t          |          r|n|g|          S N)r   )r   r'   )r   r   r   s      r^   
from_numpyzArrowSeries.from_numpy   s7      %d++7DD$ ! 
 
 	
r`   Sequence[Self]c                  	 d |D             }t          |          	t          	fd|D                       }|r|S g }|D ]}|j        r4|                    t	          j        |j        d         	                    }n/t          |          x}	k    rd	 d| d}t          |          |}|	                    |           |S )Nc                ,    g | ]}t          |          S r\   )len).0ss     r^   
<listcomp>z5ArrowSeries._align_full_broadcast.<locals>.<listcomp>   s    ***a3q66***r`   c              3  $   K   | ]
}|k    V  d S r[   r\   )r   _len
max_lengths     r^   	<genexpr>z4ArrowSeries._align_full_broadcast.<locals>.<genexpr>   s(      ??t
*??????r`   r   zExpected object of length z, got .)
maxallry   r   r   repeatr~   r   r)   append)
r   r   lengths	fast_pathreshapedr   	compliant
actual_lenmsgr   s
            @r^   _align_full_broadcastz!ArrowSeries._align_full_broadcast   s    **6***\\
????w?????	 	M 	' 	'A| NN29QXa[*+M+MNN		 #A&*:55R:RRZRRR oo%	OOI&&&&r`   r5   c                0    ddl m}  || j                  S )Nr   r4   )rs   )narwhals._arrow.namespacer5   rx   )rz   r5   s     r^   __narwhals_namespace__z"ArrowSeries.__narwhals_namespace__   s)    <<<<<<~dm4444r`   objectc                B    |                      t          j        |          S r[   )r   pcequalrz   r   s     r^   __eq__zArrowSeries.__eq__         5111r`   c                B    |                      t          j        |          S r[   )r   r   	not_equalr   s     r^   __ne__zArrowSeries.__ne__   s      u555r`   c                B    |                      t          j        |          S r[   )r   r   greater_equalr   s     r^   __ge__zArrowSeries.__ge__   s      !15999r`   c                B    |                      t          j        |          S r[   )r   r   greaterr   s     r^   __gt__zArrowSeries.__gt__   s      U333r`   c                B    |                      t          j        |          S r[   )r   r   
less_equalr   s     r^   __le__zArrowSeries.__le__         666r`   c                B    |                      t          j        |          S r[   )r   r   lessr   s     r^   __lt__zArrowSeries.__lt__   s      %000r`   c                B    |                      t          j        |          S r[   )r   r   
and_kleener   s     r^   __and__zArrowSeries.__and__   r   r`   c                B    |                      t          j        |          S r[   )r   r   r   r   s     r^   __rand__zArrowSeries.__rand__   s    &&r}e<<<r`   c                B    |                      t          j        |          S r[   r   r   	or_kleener   s     r^   __or__zArrowSeries.__or__       &&r|U;;;r`   c                B    |                      t          j        |          S r[   r   r   s     r^   __ror__zArrowSeries.__ror__   r   r`   c                B    |                      t          j        |          S r[   )r   r   addr   s     r^   __add__zArrowSeries.__add__   s      ///r`   c                B    |                      t          j        |          S r[   )r   r   r   r   s     r^   __radd__zArrowSeries.__radd__  s    &&rvu555r`   c                B    |                      t          j        |          S r[   )r   r   subtractr   s     r^   __sub__zArrowSeries.__sub__        e444r`   c                B    |                      t          j        |          S r[   )r   r   r   r   s     r^   __rsub__zArrowSeries.__rsub__	      &&r{E:::r`   c                B    |                      t          j        |          S r[   )r   r   multiplyr   s     r^   __mul__zArrowSeries.__mul__  r   r`   c                B    |                      t          j        |          S r[   )r   r   r   r   s     r^   __rmul__zArrowSeries.__rmul__  r   r`   c                B    |                      t          j        |          S r[   )r   r   powerr   s     r^   __pow__zArrowSeries.__pow__  r   r`   c                B    |                      t          j        |          S r[   )r   r   r  r   s     r^   __rpow__zArrowSeries.__rpow__  s    &&rx777r`   c                8    |                      t          |          S r[   )r   r   r   s     r^   __floordiv__zArrowSeries.__floordiv__  s      %888r`   c                8    |                      t          |          S r[   )r   r   r   s     r^   __rfloordiv__zArrowSeries.__rfloordiv__  s    &&>>>r`   c                0    |                      d |          S )Nc                :    t          j        t          | |           S r[   r   divider   r   r   s     r^   rl   z)ArrowSeries.__truediv__.<locals>.<lambda>  s    bi9I!Q9O9O.P r`   )r   r   s     r^   __truediv__zArrowSeries.__truediv__  s      !P!PRWXXXr`   c                0    |                      d |          S )Nc                :    t          j        t          | |           S r[   r  r  s     r^   rl   z*ArrowSeries.__rtruediv__.<locals>.<lambda>#  s    $4Q$:$:; r`   )r   r   s     r^   __rtruediv__zArrowSeries.__rtruediv__!  s"    &&;;U
 
 	
r`   c                    | j         ot          |dd          }| |z  j        }t          | |          \  }}t	          j        |t	          j        ||                    }|                     ||          S r   ry   rm   r~   r   r   r   r   r   rz   r   r   	floor_divr   ress         r^   __mod__zArrowSeries.__mod__&  sq    !_Sd1S1SU]*	#D%00
Uk#r{9e<<==  9K LLLr`   c                    | j         ot          |dd          }|| z  j        }t          | |          \  }}t	          j        |t	          j        ||                    }|                     ||          S r   r  r  s         r^   __rmod__zArrowSeries.__rmod__-  sq    !_Sd1S1Sd]*	#D%00
Uk%Y!<!<==  9K LLLr`   c                ^    |                      t          j        | j                  d          S NTr   )r   r   invertr~   r}   s    r^   
__invert__zArrowSeries.__invert__4  '      4;!7!7D QQQr`   pa.DataTypec                    | j         j        S r[   )r~   typer}   s    r^   _typezArrowSeries._type7  s    {r`   T)_return_py_scalarr%  intc               F    t          t          | j                  |          S r[   )r_   r   r~   rz   r%  s     r^   r   zArrowSeries.len;  s    &s4;'7'79JKKKr`   	predicateArrowSeries | list[bool | None]c                    t          |t                    st          | |          \  }}n|}|                     | j                            |                    S r[   )r%   rX   r   r   r~   filter)rz   r)  _r   s       r^   r,  zArrowSeries.filter>  sR    )T** 	%,T9==OA||$L  !3!3L!A!ABBBr`   rL   c               h    t          | j                  r| j        d         nd }t          ||          S Nr   )r   r~   r_   )rz   r%  r   s      r^   firstzArrowSeries.firstF  s1    #&t{#3#3=Q&v/@AAAr`   c               l    | j         }t          |          x}r||dz
           nd }t          ||          S N   )r~   r   r_   )rz   r%  caheightr   s        r^   lastzArrowSeries.lastJ  s;    [.1"gg$5F@FQJD&v/@AAAr`   floatc               P    t          t          j        | j                  |          S r[   )r_   r   meanr~   r(  s     r^   r9  zArrowSeries.meanO  s    &rwt{';';=NOOOr`   c                   | 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_medianr~   )rz   r%  r   s      r^   medianzArrowSeries.medianR  sP    z$$&& 	-PC',,,&!$+..0A
 
 	
r`   c               P    t          t          j        | j                  |          S r[   )r_   r   minr~   r(  s     r^   r?  zArrowSeries.min[      &rvdk':':<MNNNr`   c               P    t          t          j        | j                  |          S r[   )r_   r   r   r~   r(  s     r^   r   zArrowSeries.max^  r@  r`   c                   t          j        | j        t          j        | j                            }t	          ||          S r[   )r   indexr~   r?  r_   )rz   r%  	index_mins      r^   arg_minzArrowSeries.arg_mina  2    HT["&*=*=>>	&y2CDDDr`   c                   t          j        | j        t          j        | j                            }t	          ||          S r[   )r   rC  r~   r   r_   )rz   r%  	index_maxs      r^   arg_maxzArrowSeries.arg_maxe  rF  r`   c               T    t          t          j        | j        d          |          S Nr   )	min_count)r_   r   sumr~   r(  s     r^   rM  zArrowSeries.sumi  +    &F4;!,,,.?
 
 	
r`   c                Z    |                      | j                                                  S r[   )r   r~   	drop_nullr}   s    r^   
drop_nullszArrowSeries.drop_nullsn  s$      !6!6!8!8999r`   nc                <   |dk    r't          ||           g| j        d |          j        }nI|dk     r)g | j        | d          j        t          | |           }n|                     | j                  S |                     t	          j        |                    S r/  )r   r~   chunksr   r   concat_arrays)rz   rR  arrayss      r^   shiftzArrowSeries.shiftq  s    q55 D))DDK!,<,CDFFUUEt{A233'.E
A2t0D0DEFF$$T[111  !1&!9!9:::r`   ddofc               T    t          t          j        | j        |          |          S N)rX  )r_   r   stddevr~   rz   rX  r%  s      r^   stdzArrowSeries.stdz  s+    &Idk---/@
 
 	
r`   c               T    t          t          j        | j        |          |          S rZ  )r_   r   variancer~   r\  s      r^   varzArrowSeries.var  s+    &K$///1B
 
 	
r`   float | Nonec          	     t   | j                                         }t          |          dk    rd S t          |          dk    rt          d          S t          |          dk    rdS 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   r3  nan   g           g      ?r~   rP  r   r7  r   r   r9  r  r   r  r_   )rz   r%  ser_not_nullmm2m3biased_population_skewnesss          r^   skewzArrowSeries.skew  s    {,,..|!!4|!!<<|!!3Kbgl&;&;<<WRXaQ(())WRXaQ(())%'Yr28BC3I3I%J%J"&'ACTUUUr`   c                  | j                                         }t          |          dk    rd S 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   r3  rc  rd     re  rf  )rz   r%  rg  rh  ri  m4ks          r^   kurtosiszArrowSeries.kurtosis  s    {,,..|!!4|!!<<Kbgl&;&;<<WRXaQ(())WRXaQ(())K	"bhr3q66&:&:;;SVVDD&q*;<<<r`   c               P    t          t          j        | j                  |          S r[   )r_   r   countr~   r(  s     r^   rs  zArrowSeries.count  s    &rx'<'<>OPPPr`   c               x    t          t          j        | j                                        d          |          S )Nr   )mode)r_   r   rs  r~   uniquer(  s     r^   n_uniquezArrowSeries.n_unique  s7    &HT[''))6668I
 
 	
r`   r.   c                    | j         t          j        u r| j                                         S dt	          | j                    }t          |          )NzExpected pyarrow, got: )_implementationr#   PYARROWto_native_namespacer#  AssertionError)rz   r   s     r^   __native_namespace__z ArrowSeries.__native_namespace__  sN    >#999';;===DT-A(B(BDDS!!!r`   c                    | j         S r[   )rv   r}   s    r^   rq   zArrowSeries.name  s
    zr`   rows(SizedMultiIndexSelector[ChunkedArrayAny]c                <   t          |          dk    r.|                     | j                            dd                    S | j        dk     r$t          |t                    rt          |          }|                     | j                            |                    S )Nr   )   )	r   r   r~   slice_backend_versionr   tuplelisttake)rz   r  s     r^   _gatherzArrowSeries._gather  s    t99>>$$T[%6%6q!%<%<=== 5((Ze-D-D(::D  !1!1$!7!7888r`   _SliceIndex | rangec                t   |j         pd}|j        |j        nt          | j                  }|dk     rt          | j                  |z   }|dk     rt          | j                  |z   }|j        |j        dk    rd}t          |          |                     | j                            |||z
                      S )Nr   r3  z4Slicing with step is not supported on PyArrow tables)startstopr   r~   stepNotImplementedErrorr   r  )rz   r  r  r  r   s        r^   _gather_slicezArrowSeries._gather_slice  s    
a I1tyys4;7G7G199$$u,E!88t{##d*D9 TY!^^HC%c***  !2!25$,!G!GHHHr`   indicesint | Sequence[int]valuesc                   dd l }t          |t                    r+t          j        |g          }t          j        |g          }nZt          j        |          }t          || j                  r|j                                        }nt          j        } ||          }t          j	        |          }|
                    |          }|
                    |          }|                    |                                 t                    }d||<   t          j        }	|                      |	| j        ||                    S )Nr   )r   T)numpyr   r&  r   arrayr   r~   combine_chunksr   sort_indicesr  r   r   rX   replace_with_maskr   )
rz   r  r  npindices_nativevalues_nativepa_arraysorting_indicesmaskpc_replace_with_masks
             r^   scatterzArrowSeries.scatter  s%    gs## 	1Xwi00NHfX..MM  Xg..N&$.11 1 & < < > > (*x ( 0 0/.99',,_==%**?;;$((**D99#^ ,.+?  !5!5dk4!W!WXXXr`   	list[Any]c                4    | j                                         S r[   )r~   	to_pylistr}   s    r^   to_listzArrowSeries.to_list  s    {$$&&&r`   )copyr  bool | NonerQ   c               :    | j                             ||          S )N)r   r  )r~   	__array__rz   r   r  s      r^   r  zArrowSeries.__array__  s    {$$5t$<<<r`   c               4    | j                                         S r[   )r~   to_numpyr  s      r^   r  zArrowSeries.to_numpy  s    {##%%%r`   c                b    |                      | j        || j                  }| j        |_        |S r   )r   r~   rx   ry   )rz   rq   r   s      r^   r   zArrowSeries.alias  s,    $NN Or`   rD   c                @    t          | j        j        | j                  S r[   )r   r~   r#  rx   r}   s    r^   r   zArrowSeries.dtype  s    '(8$-HHHr`   c                Z    |                      t          j        | j                            S r[   )r   r   absr~   r}   s    r^   r  zArrowSeries.abs  "      !4!4555r`   reversec                   t           j        }|s || j        d          n# || j        d d d         d          d d d         }|                     |          S NT)
skip_nulls)r   cumulative_sumr~   r   )rz   r  cum_sumr   s       r^   r  zArrowSeries.cum_sum  sp    # CGGDKD1111TTrT*t<<<TTrTB 	
   (((r`   decimalsc                `    |                      t          j        | j        |d                    S )Nhalf_towards_infinity)
round_mode)r   r   roundr~   )rz   r  s     r^   r  zArrowSeries.round  s1      HT[(7NOOO
 
 	
r`   c                Z    |                      t          j        | j                            S r[   )r   r   floorr~   r}   s    r^   r  zArrowSeries.floor  s"      $+!6!6777r`   c                Z    |                      t          j        | j                            S r[   )r   r   ceilr~   r}   s    r^   r  zArrowSeries.ceil
  "      !5!5666r`   c                ~    |                      t          j        | j                                                            S r[   )r   r   pairwise_diffr~   r  r}   s    r^   diffzArrowSeries.diff  s/      !1$+2L2L2N2N!O!OPPPr`   c               T    t          t          j        | j        d          |          S rK  )r_   r   anyr~   r(  s     r^   r  zArrowSeries.any  rN  r`   c               T    t          t          j        | j        d          |          S rK  )r_   r   r   r~   r(  s     r^   r   zArrowSeries.all  rN  r`   lower_boundupper_boundclosedrE   c                   t          | |          \  }}t          | |          \  }}|dk    rJt          j        | j        |          }t          j        | j        |          }t          j        ||          }n|dk    rJt          j        | j        |          }t          j        | j        |          }	t          j        ||	          }n|dk    rJt          j        | j        |          }t          j        | j        |          }t          j        ||          }n_|dk    rJt          j        | j        |          }t          j        | j        |          }	t          j        ||	          }nt          |           | 	                    |          S )Nleftrightnoneboth)
r   r   r   r~   r   r   r   r   r"   r   )
rz   r  r  r  r-  geltr  gtles
             r^   
is_betweenzArrowSeries.is_between  s^    (k::;'k::;V!$+{;;Bk22B-B''CCwDK55Bt{K88B-B''CCvDK55Bk22B-B''CCv!$+{;;Bt{K88B-B''CC     %%%r`   c                ^    |                      | j                                        d          S r  )r   r~   is_nullr}   s    r^   r  zArrowSeries.is_null3  s)      !4!4!6!64 PPPr`   c                ^    |                      t          j        | j                  d          S r  )r   r   is_nanr~   r}   s    r^   r  zArrowSeries.is_nan6  r   r`   rH   c                    t          || j                  }|                     t          j        | j        |          d          S r  )r   rx   r   r   r   r~   )rz   r   	data_types      r^   r   zArrowSeries.cast9  s;    ,UDMBB	  i!@!@UY ZZZr`   c               6    t          | j        j        |          S r[   )r_   r~   
null_countr(  s     r^   r  zArrowSeries.null_count=  s    &t{'=?PQQQr`   c           
        |dk    r.|                      | j                            d|                    S t          |           }|                      | j                            dt	          d||z                                 S r/  )r   r~   r  r   r   rz   rR  num_rowss      r^   headzArrowSeries.head@  sp    66$$T[%6%6q!%<%<===t99  !2!21c!X\6J6J!K!KLLLr`   c           	        |dk    rMt          |           }|                     | j                            t	          d||z
                                S |                     | j                            t          |                              S r/  )r   r   r~   r  r   r  r  s      r^   tailzArrowSeries.tailF  sr    664yyH$$T[%6%6s1hl7K7K%L%LMMM  !2!23q66!:!:;;;r`   c                    |                      |          r|}nt          j        |          }|                     t	          j        | j        |                    S )N)	value_set)r   r   r  r   r   is_inr~   )rz   r   r  s      r^   r  zArrowSeries.is_inL  sO    ??5!! 	(-2III  $+!K!K!KLLLr`   c                x    dd l }|                    | j                  }|                     || j        |           S )Nr   r   )r  flatnonzeror~   r   rq   )rz   r  r  s      r^   arg_truezArrowSeries.arg_trueS  s>    nnT[))!!#DIt!DDDr`   rC  
int | Nonec                    |Qt          |           dk    r"dt          |            d}t          |          t          | j        d         d          S t          | j        |         d          S )Nr3  zlcan only call '.item()' if the Series is of length 1, or an explicit index is provided (Series is of length )r   TrW   )r   
ValueErrorr_   r~   )rz   rC  r   s      r^   itemzArrowSeries.itemY  s~    =4yyA~~[NQRVii[ [ [  !oo%*4;q>DQQQQ&t{5'9DQQQQr`   sortparallel
str | None	normalizer3   c          	        ddl m} | j        dn| j        }|p|rdnd}t          j        | j                  }|                    d          }	t          d|                    d	                    }
|r1|	t          j        t          |
t          j
        |
                     g}n|	|
g}t          j                            |||g
          }|r|                    |dfg          } ||| j        d          S )z-Parallel is unused, exists for compatibility.r   r2   NrC  
proportionrs  r  r9   countsnames
descendingTrs   validate_column_names)narwhals._arrow.dataframer3   rv   r   value_countsr~   fieldr   r  r   rM  r   Tablefrom_arrayssort_byrx   )rz   r  r  rq   r  r3   index_name_value_name_
val_countsr  r  rV  	val_counts                r^   r  zArrowSeries.value_countsd  s    	=<<<<<!%!3ggFyE||g_T[11
!!(++')9)9()C)CDD 	&bi)9&"&..)Q)QRSFFf%FH(([7Q(RR	 	I!))K+F*GHHI~t}D
 
 
 	
r`   r  c                    |j                                         }|                     t          j        || j         |j                             S r[   )r~   r  r   r   if_else)rz   r  r   conds       r^   zip_withzArrowSeries.zip_with  s;    {))++  D$+u|!L!LMMMr`   fractionwith_replacementseedc               >   dd l }t          |           }||t          ||z            }|j                            |          }|                    |          }|                    |||          }	|                     | j        	                    |	                    S )Nr   )r  )sizereplace)
r  r   r&  randomdefault_rngarangechoicer   r~   r  )
rz   rR  r	  r
  r  r  r  rngidxr  s
             r^   samplezArrowSeries.sample  s     	t999-Hx'((Ai###..ii!!zz#A/?z@@  !1!1$!7!7888r`   c                    t          j        t          j        | j                  || j                  }|                     |d          S r  )r   r  r  r~   r   )rz   rU   r   s      r^   fill_nanzArrowSeries.fill_nan  s<    BIdk22E4;GG  D AAAr`   Self | NonNestedLiteralstrategyFillNullStrategy | Nonelimitc                ,  	 dd l 	d	fd
}|.t          | |          \  }}t          j        | j        |          }nC|/|dk    rt          j        nt          j        } || j                  }n || j        ||          }|                     |d          S )Nr   arrr9   r  r&  	directionr  rY   r6   c                   t          j        |           }t          j                            t          |                     t          j                              }|dk    r5j                            	                    ||d                    }||z
  }n\j
                            	                    |d d d         |d d d         t          |                               d d d         }||z
  }t          j        t          j        t          j        |           t          j        |t          |                              |                     |          |           S )Nr#  forwardr  )r   is_validr   r  r  r   int64maximum
accumulatewhereminimumr  and_r  r   r   r  )r  r  r  
valid_maskr  valid_indexdistancer  s          r^   fill_auxz'ArrowSeries.fill_null.<locals>.fill_aux  s+    S))JhryyS22DDDGI%% j33BHHZRT4U4UVV"[0 j33HHZ"-wttt}c#hhGG $B$ '0:
3xU)L)LMM%%  r`   r!  Tr   )r  r9   r  r&  r  r  rY   r6   )r  r   r   	fill_nullr~   fill_null_forwardfill_null_backwardr   )
rz   rU   r  r  r,  r-  native_valuer   	fill_funcr  s
            @r^   r-  zArrowSeries.fill_null  s     		 	 	 	 	 	, ,T599OA|$&Ll$K$KFF](0I(=(=$$2CX  Yt{++FFXdk5(;;F  D AAAr`   c                    ddl m} t          j                            | j        g| j        g          } ||| j        d          S )Nr   r2   r  Fr  )r  r3   r   r  r  r~   rq   rx   )rz   r3   dfs      r^   to_framezArrowSeries.to_frame  sO    <<<<<<X!!4;-	{!CC~b$-uUUUUr`   pd.Series[Any]c                B    dd l } |j        | j        | j                  S )Nr   r   )pandasSeriesr~   rq   )rz   pds     r^   	to_pandaszArrowSeries.to_pandas  s)    ry495555r`   	pl.Seriesc                P    dd l }t          d |j        | j                            S )Nr   r;  )polarsr   
from_arrowr~   )rz   pls     r^   	to_polarszArrowSeries.to_polars  s,    Kt{!;!;<<<r`   c                ~    |                                                                                      | j                  S r[   )r4  	is_uniquer   rq   r}   s    r^   rB  zArrowSeries.is_unique  s,    }}((**00;;;r`   c                   dd l }t          j        |                    t	          |                               }t          d| j        g          }t          j                            | j	        g| j        g          
                    ||                              | j                                      |dfg                              | d          }|                     t          j        ||                    S )Nr      n_bytescolumnsr  r?  _minr  r   r  r  r   r$   rq   r  r  r~   append_columngroup_by	aggregatecolumnr   r   r  )rz   r  
row_number	col_tokenfirst_distinct_indexs        r^   is_first_distinctzArrowSeries.is_first_distinct  s    XbiiD		2233
21tykRRR	H  $+tyk BB]9j11Xdi  YE*+,,Vy&&&'' 	   *6J!K!KLLLr`   c                   dd l }t          j        |                    t	          |                               }t          d| j        g          }t          j                            | j	        g| j        g          
                    ||                              | j                                      |dfg                              | d          }|                     t          j        ||                    S )Nr   rD  rE  r  r   _maxrI  )rz   r  rN  rO  last_distinct_indexs        r^   is_last_distinctzArrowSeries.is_last_distinct  s    XbiiD		2233
21tykRRR	H  $+tyk BB]9j11Xdi  YE*+,,Vy&&&'' 	   *6I!J!JKKKr`   r  c                  t          |t                    s!dt          |           }t          |          |rBt	          j        t	          j        | j        d d         | j        dd                              }nAt	          j        t	          j        | j        d d         | j        dd                              }t          |d          S )Nz/argument 'descending' should be boolean, found r  r3  Tr  )
r   rX   r#  	TypeErrorr   r   r   r~   r   r_   )rz   r  r   r   s       r^   	is_sortedzArrowSeries.is_sorted  s    *d++ 	!VDDTDTVVCC..  	NVB,T["-=t{122OOPPFFVBM$+crc*:DKOLLMMF&vEEEEr`   maintain_orderrZ  c               Z    |                      | j                                                  S r[   )r   r~   rv  )rz   rZ  s     r^   rv  zArrowSeries.unique  s$      !3!3!5!5666r`   old!Sequence[Any] | Mapping[Any, Any]newSequence[Any]return_dtypec                  t          j        | j        t          j        |                    }t          j        t          j        |          |          }|(|                    t          || j                             | 	                    |          }|
                                                                | 
                                                                k    rud|                     | 
                                 |
                                z                                d                                           }t          |          |S )NzYreplace_strict did not replace all non-null values.

The following did not get replaced: FrY  )r   index_inr~   r   r  r  r   r   rx   r   r  rM  r,  rv  r  r  )rz   r\  r^  r`  idxsresult_nativer   r   s           r^   replace_strictzArrowSeries.replace_strict  s    {4;66t44#7dmTTUUU""=11>>!!T\\^^%7%7%9%999l;;1A1AABBIIY^I__ggiil l 
 S//!r`   
nulls_lastc                   |rdnd}|rdnd}t          j        | j        ||          }|                     | j                            |                    S )Nr  	ascendingat_endat_start)ordernull_placement)r   array_sort_indicesr~   r   r  )rz   r  rf  rk  rl  sorted_indicess         r^   r  zArrowSeries.sort  sd    '1B||{4>(NJ.Ku^
 
 
   !1!1.!A!ABBBr`   	separator
drop_firstc                 	
 dd l }ddlm} | j        	| j                                                            d          }|                    t          |j	                  t          |          f|j
                  }d||j        |                    t          |                    f<   	  d	  dc
	
fd|j	        D             }|v r3gt          fd|D                       t          |          d          n#t          |          t          |          d          }  |t          j                            ||	          | j        d
          j        | S )Nr   r2   encoder3  rt   nullc                X    g | ]&}i                       |   |           'S r\   )get)r   vrq   null_col_panull_col_plro  s     r^   r   z*ArrowSeries.to_dummies.<locals>.<listcomp>-  se     
 
 
  +&**''A''D)@))@Q)@)@ 
 
 
r`   c                     g | ]
}|k    |S r\   r\   )r   crx  s     r^   r   z*ArrowSeries.to_dummies.<locals>.<listcomp>7  s#    ===qA,<,<,<,<,<r`   r  Tr  )r  r  r3   rv   r~   r  dictionary_encoder   r   
dictionaryint8r  r  sortedr&  r   r  r  rx   simple_select)rz   ro  rp  r  r3   darG  colsoutput_orderrq   rw  rx  s    `       @@@r^   
to_dummieszArrowSeries.to_dummies!  s   <<<<<<z3355GGQQHHc"-&8&8#b''%BBGLL23
BIIc"gg.../&*#;I#;#;#;=Ui=U=U=U [
 
 
 
 
 
 
 ]	
 
 
 d"" ====D===>>s:?P?PQ 
 c*oo//0 	~~H   55M"&
 
 
 	' 	'r`   quantileinterpolationrN   c               b    t          t          j        | j        ||          d         |          S )N)qr  r   )r_   r   r  r~   )rz   r  r  r%  s       r^   r  zArrowSeries.quantileB  s4     'Kx}MMMaP
 
 	
r`   r   offsetc                H    |                      | j        |d |                   S r[   )r   r~   )rz   rR  r  s      r^   gather_everyzArrowSeries.gather_everyN  s#      VYQY!7888r`   .Self | NumericLiteral | TemporalLiteral | Nonec                   |t          | |          nd\  }}|t          | |          nd\  }}|-|                     t          j        | j        |                    S |-|                     t          j        | j        |                    S |                     t          j        t          j        | j        |          |                    S )N)NN)r   r   r   min_element_wiser~   max_element_wise)rz   r  r  r-  loweruppers         r^   clipzArrowSeries.clipQ  s     2=1HN4---l 	5 2=1HN4---l 	5 =$$R%8e%L%LMMM=$$R%8e%L%LMMM   3DK G GOO
 
 	
r`   r6   c                4    | j                                         S r[   )r~   r  r}   s    r^   to_arrowzArrowSeries.to_arrowe  s    {))+++r`   keeprI   c                  |                                  }t          d| j        g          }|                     |ddd          }|                    |                    |          |                    |                                                              t          j	                  k              
                    | j                  }|dk    r|                    d          n|S )NrD  rE  F)rq   r  r  r  )kindr  r3  )r   r$   rq   r  r,  colr   	broadcastr!   AGGREGATION
get_columnr  )rz   r  plxrO  r  r   s         r^   ru  zArrowSeries.modeh  s    ))++21tykRRR	""e%% # 
 
 GGIwwy!!%%''11x7K1LLM
 
 *TY

 	 "&v{{1~~~F:r`   c                Z    |                      t          j        | j                            S r[   )r   r   	is_finiter~   r}   s    r^   r  zArrowSeries.is_finitet  s"      dk!:!:;;;r`   c                   | j         j        }|                                                      |                                                              |          S )Nr  )rx   dtypesr  r   UInt32r  )rz   r  r  s      r^   	cum_countzArrowSeries.cum_countw  sC    %%%fmmoo66>>w>OOOr`   c                   |st          j        | j        d          n,t          j        | j        d d d         d          d d d         }|                     |          S r  )r   cumulative_minr~   r   rz   r  r   s      r^   cum_minzArrowSeries.cum_min{  j     MBdkd;;;;"4;ttt#4FFFtttL 	
   (((r`   c                   |st          j        | j        d          n,t          j        | j        d d d         d          d d d         }|                     |          S r  )r   cumulative_maxr~   r   r  s      r^   cum_maxzArrowSeries.cum_max  r  r`   c                   |st          j        | j        d          n,t          j        | j        d d d         d          d d d         }|                     |          S r  )r   cumulative_prodr~   r   r  s      r^   cum_prodzArrowSeries.cum_prod  sj     NBt{t<<<<#DK"$5$GGG"M 	
   (((r`   window_sizemin_samplescenterc               8   ||n|}t          | ||          \  }}|                    d                              d dd           }|dk    r.||                    |                              dd d           z
  n|}|                    d          }||                    |                              dd d           z
  }	|                     t          j        |	|k    j        |j        d                     }
|
	                    t          |d                     S Nr  r  Fr  r!  rU   r  r  r   r   r  r-  rW  r  r   r   r  r~   r  r  rz   r  r  r  padded_seriesr  r  rolling_sumvalid_countcount_in_windowr   s              r^   r  zArrowSeries.rolling_sum  sM   %0%<kk+ *4[QW X X Xv'''66@@$ A 
 
 a mmK((22TQU2VVW W 	 	 $--e-<<%(9(9+(F(F(P(Pd$ )Q )
 )
 
 ""J;6>@RTXYY
 
 ##E&$$7$7888r`   c               >   ||n|}t          | ||          \  }}|                    d                              d dd           }|dk    r.||                    |                              dd d           z
  n|}|                    d          }||                    |                              dd d           z
  }	|                     t          j        |	|k    j        |j        d                     |	z  }
|
	                    t          |d                     S r  r  r  s              r^   rolling_meanzArrowSeries.rolling_mean  s_   %0%<kk+ *4[QW X X Xv'''66@@$ A 
 
 a mmK((22TQU2VVW W 	 	 $--e-<<%(9(9+(F(F(P(Pd$ )Q )
 )
 

 
$3;[=OQU  
  	 ##E&$$7$7888r`   c                  ||n|}t          | ||          \  }}|                    d                              d dd           }|dk    r.||                    |                              dd d           z
  n|}t	          |d                              d                              d dd           }	|dk    r.|	|	                    |                              dd d           z
  n|	}
|                    d          }||                    |                              dd d           z
  }|                     t          j        ||k    j	        |
|dz  |z  z
  j	        d                     |                     t          j
        ||z
  j	        d                    z  }|                    t          |d d                     S )Nr  Fr  r!  r  r   rd  )r   r  r-  rW  powr  r   r   r  r~   r  r  r  )rz   r  r  r  rX  r  r  r  r  
cum_sum_sqrolling_sum_sqr  r  r   s                 r^   rolling_varzArrowSeries.rolling_var  s    &1%<kk+ *4[QW X X Xv'''66@@$ A 
 
 a mmK((22TQU2VVW W 	 	 q!!WUW##YTITYBB 	 a {++55ATX5YYZ Z 	 	 $--e-<<%(9(9+(F(F(P(Pd$ )Q )
 )
 
 ""J K/7;>O#CDL 
 
 b1?T3I2QSTUUVVW ##E&$$=$=>>>r`   c               :    |                      ||||          dz  S )N)r  r  r  rX        ?)r  )rz   r  r  r  rX  s        r^   rolling_stdzArrowSeries.rolling_std  s5     '[VZ    	
r`   methodrM   c               z   |dk    rd}t          |          |rdnd}|dk    rdn|}| j        dk     r| j                                        }n| j        }t	          j        |          }t	          j        |||          }t	          j        |t          d |j	                  |          }	| 
                    |	          S )	Naveragez`rank` with `method='average' is not supported for pyarrow backend. The available methods are {'min', 'max', 'dense', 'ordinal'}.r  rh  ordinalr0  )   r   r   )	sort_keys
tiebreaker)r  r  r~   r  r   r  rankr  r   r#  r   )
rz   r  r  r   r  r  rp   	null_maskr  r   s
             r^   r  zArrowSeries.rank  s    YP  S//!+5F<<;	,2i,?,?V
  :-- K6688MM KMJ}--	w}	jQQQIs4';';TBB  (((r`   binslist[float]include_breakpointc                   t                               | |                              |                                          S N)r  )
_ArrowHistfrom_series	with_binsr4  )rz   r  r  s      r^   hist_from_binszArrowSeries.hist_from_bins  s4     ""4<N"OOYt__XZZ	
r`   	bin_countc                   t                               | |                              |                                          S r  )r  r  with_bin_countr4  )rz   r  r  s      r^   hist_from_bin_countzArrowSeries.hist_from_bin_count  s6     ""4<N"OO^I&&XZZ	
r`   Iterator[Any]c              #  D   K   | j         D ]}t          |d          V  d S )NTr  )r~   r_   )rz   r   s     r^   __iter__zArrowSeries.__iter__'  sA       	D 	DA)!dCCCCCCC	D 	Dr`   c                .   ddl m}m}m} 	 |t	          |          nt	          d | j                  }t          t          j        || j	                  d          S # |||f$ r0}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  r~   r#  r   r(   )rz   r   r  r  r  other_excr   s           r^   __contains__zArrowSeries.__contains__+  s    	
 	
 	
 	
 	
 	
 	
 	
 	
 	
	6#(#4SZZZ#d:T:T:TF*--    6G 	6 	6 	6dT%[[ddW[WadddC',,#5	6s   AA B$+BBbasec                v    |                      t          j        | j        t	          |                              S r[   )r   r   logbr~   r   )rz   r  s     r^   logzArrowSeries.log;  s*      c$ii!@!@AAAr`   c                Z    |                      t          j        | j                            S r[   )r   r   expr~   r}   s    r^   r  zArrowSeries.exp>  r  r`   c                Z    |                      t          j        | j                            S r[   )r   r   sqrtr~   r}   s    r^   r  zArrowSeries.sqrtA  r  r`   r   c                     t          |           S r[   r   r}   s    r^   dtzArrowSeries.dtD  s    +D111r`   r   c                     t          |           S r[   r
   r}   s    r^   catzArrowSeries.catH  s    &t,,,r`   r   c                     t          |           S r[   r   r}   s    r^   rr   zArrowSeries.strL      )$///r`   r   c                     t          |           S r[   r   r}   s    r^   r  zArrowSeries.listP  s    '---r`   r   c                     t          |           S r[   r   r}   s    r^   structzArrowSeries.structT  r  r`   )rp   r9   rq   rr   rs   rB   rY   rt   )rY   r9   )rs   rB   rY   r/   )r   r8   r   rX   rY   r/   )r   r   r   r   rY   r/   )
r   r   r   rC   rq   rr   r   r   rY   r/   )rU   r   rY   r/   )r   r   rY   r   )r   r9   r   rC   rq   rr   rY   r/   )r   rG   r   rC   rY   r/   )r   r/   rY   r   )rY   r5   )r   r   rY   r/   )r   r   rY   r/   )rY   r/   )rY   r!  )r%  rX   rY   r&  )r)  r*  rY   r/   )r%  rX   rY   rL   )r%  rX   rY   r7  )r%  rX   rY   r   )rR  r&  rY   r/   )rX  r&  r%  rX   rY   r7  )r%  rX   rY   ra  )rY   r.   )rY   rr   )r  r  rY   r/   )r  r  rY   r/   )r  r  r  r   rY   r/   )rY   r  r[   )r   r   r  r  rY   rQ   )rq   rr   rY   r/   )rY   rD   )r  rX   rY   r/   )r  r&  rY   r/   )r%  rX   rY   rX   )r  r   r  r   r  rE   rY   r/   )r   rH   rY   r/   )rC  r  rY   r   )
r  rX   r  rX   rq   r  r  rX   rY   r3   )r  r/   r   r/   rY   r/   )
rR  r  r	  ra  r
  rX   r  r  rY   r/   )rU   ra  rY   r/   )rU   r  r  r  r  r  rY   r/   rY   r3   )rY   r5  )rY   r;  )rY   ro   )r  rX   rY   rX   )rZ  rX   rY   r/   )r\  r]  r^  r_  r`  r   rY   r/   )r  rX   rf  rX   rY   r/   )ro  rr   rp  rX   rY   r3   )r  r7  r  rN   r%  rX   rY   r7  )r   )rR  r&  r  r&  rY   r/   )r  r  r  r  rY   r/   )rY   r6   )r  rI   rY   ro   )r  r&  r  r&  r  rX   rY   r/   )
r  r&  r  r&  r  rX   rX  r&  rY   r/   )r  rM   r  rX   rY   r/   )r  r  r  rX   rY   r3   )r  r&  r  rX   rY   r3   )rY   r  )r   r   rY   rX   )r  r7  rY   r/   )rY   r   )rY   r   )rY   r   )rY   r   )rY   r   )__name__
__module____qualname__r#   rz  ry  r{   propertyr~   r   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,  r0  r6  r9  r=  r?  r   rE  rI  rM  rQ  rW  r]  r`  rl  rq  rs  rw  r}  rq   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-  r4  r:  r@  rB  rQ  rU  rX  rv  re  r  r  r  r  r  r  ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rr   r  r  r&   ewm_mean__classcell__)r   s   @r^   ro   ro   }   sH       $,O        # # # X#M M M M DI        P P P P  "&C C C C C [C&+ + + + + +
 0 0 0 \0 PR> > > > > [>
 
 
 
 [

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

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

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

 ;? 
 
 
 
 
 

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

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

8 8 8 87 7 7 7Q Q Q Q 04 
 
 
 
 
 

 04 
 
 
 
 
 

& & & &2Q Q Q QR R R R[ [ [ [ 7; R R R R R RM M M M< < < <M M M ME E E E	R 	R 	R 	R 	R
 
 
 
6N N N N9 9 9 9&B B B B(B (B (B (BTV V V V6 6 6 6
= = = =
< < < <M M M ML L L LF F F F 04 7 7 7 7 7 7   ,C C C C' ' ' 'L #'

 

 

 

 

 

9 9 9 9 9
 
 
 
(, , , ,
; 
; 
; 
;< < < <P P P P) ) ) )) ) ) )) ) ) )9 9 9 909 9 9 9:)? )? )? )?V
 
 
 
) ) ) )0
 
 
 

 
 
 
D D D D6 6 6 6 B B B B6 6 6 67 7 7 7 2 2 2 X2 - - - X- 0 0 0 X0 . . . X. 0 0 0 X0   HHHHHr`   ro   r9   c                  X    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
dS )&r  ro   _seriesrY   r3   c                    t           j        j        }| j                                        j        j        } | || j                  | j                  S r   )r   r  from_pydictr  r   
_dataframer   _data)rz   tabler   s      r^   r4  z_ArrowHist.to_frame`  sH    H0l99;;FR{55,,dlCCCCr`   rX   c                    | j                             d          }t          d|                                          }|j        dk    S )NT)nan_is_nullzpa.BooleanArrayr   )r~   r  r   r  false_count)rz   r  r  s      r^   is_empty_seriesz_ArrowHist.is_empty_seriesg  sE     +%%$%77$g&<&<&>&>??!##r`   argint | list[float]rT   c               r    |                      |          }| j        r|                     |          |dS d|iS )N
breakpointrs  rs  )_zeros_breakpoint_calculate_breakpoint)rz   r  rs  s      r^   series_emptyz_ArrowHist.series_emptyq  sF    C   	S"&"<"<S"A"AERRRr`   pa.Int64Arrayc                   t          |t                    rt          |          nt          t          |          dz
            S r2  )r   r&  r   r   )rz   r  s     r^   r  z_ArrowHist._zerosw  s3    'S11JuSzzzuSXX\7J7JJr`   r  )r  r  r7  endnum_samplesr&  r  Literal['both', 'none']rQ   c               4    ddl m}  |||||dk              S )Nr   )linspacer  )r  r  numendpoint)r  r  )rz   r  r  r  r  r  s         r^   _linear_spacez_ArrowHist._linear_spacez  s5     	#"""""xe#;SYIYZZZZr`   r  c                    t          j        | j                  }|d                                         |d                                         }}||k    r
|dz  }|dz  }|                     |||dz             S )z6Prepare bins for histogram calculation from bin_count.r?  r   r  r3  )r   min_maxr~   rj   r  )rz   r  dr  r  s        r^   _calculate_binsz_ArrowHist._calculate_bins  so    Jt{##x~~''5)9)9uE>>SLESLE!!%	A>>>r`   r  list[float] | _1DArrayc           
        | j         }t          d|          }t          |          dk    rt          j        t          j        |t          |d                             t          j        |t          |d                                       }t          j        |                    t          j
                                        }| j        r|d         g|gdS d|giS dd l}|                    ||d	          }t          j        t          j        |t          |d                             d|          }|                    |d
          \  }}|                    dt          |                    }	|                    |	          }
||                    ||	                   |
|                    |	|          <   | j        r|dd          |
dS d|
iS )Nr  rd  r   r3  r  r  rs  r  )sideT)return_counts)r~   r   r   r   r(  r   r   r   rM  r   uint8r  r  searchsortedr  r   rv  r  
zeros_likeisin)rz   r  r   is_between_binsrs  r  bin_indicesobs_cats
obs_countsobj_catsr  s              r^   _calculate_histz_ArrowHist._calculate_hist  s   k
 M4((t99>> g c$q'll33R]3DQRG5U5U O F?//

;;<<E D'+BxjE7CCCeW%% 	oodCfo==j#s47||!<!<aMM  "yyDyII*99QD		**x((.889T9T.Urwwx**+ 	="&qrr(V<<<  r`   Nr  )rY   rX   )r  r  rY   rT   )r  r  rY   r  )
r  r7  r  r7  r  r&  r  r  rY   rQ   )r  r&  rY   rQ   )r  r"  rY   rT   )r  r  r  __annotations__r4  r
  r  r  r  r!  r/  r\   r`   r^   r  r  [  s          D D D D$ $ $ $       K K K K +1
[ 
[ 
[ 
[ 
[ 
[? ? ? ? !  !  !  !  !  !r`   r  )r9   z-list[ScalarAny] | pa.Int64Array | list[float])rU   rV   rW   rX   rY   r?   )rU   ra   rW   rX   rY   rb   )rU   rd   rW   rX   rY   re   )rU   rg   rW   rX   rY   r   )rU   r   rW   rX   rY   r   )o
__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   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.   r7  r9  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   rB   rC   narwhals.dtypesrD   narwhals.typingrE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   r0  r_   ro   r  r\   r`   r^   <module>rH     s   " " " " " " " H H H H H H H H H H H H H H H H           > > > > > > B B B B B B @ @ @ @ @ @ A A A A A A D D D D D D                          = < < < < < < < 1 1 1 1 1 1 0 0 0 0 0 0            4 3 3 3 3 3 A A A A A A A A .EEEEEEEEEEEE      9999999999888888888888                          43333388888888%%%%%%                                 & 	S      
   
 
   
 
   
 
   
   [! [! [! [! [!+/0 [! [! [!|T! T! T! T! T!VWT! T! T! T! T!r`   