
    }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d4d#            Zked5d&            Zked6d)            Zked7d,            Zkd8d-Zk G d. d/e&d0                   Zl G d1 d2e'd3                   ZmdS )9    )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   ArrowHistDatavalue$pa.Scalar[_BasicDataType[_AsPyType]]return_py_scalarboolreturnr?   c                    d S N rT   rV   s     J/home/jrussi/.local/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 rZ   r[   r\   s     r]   r^   r^   `   s	     3r_   1pa.Scalar[pa.ListType[_BasicDataType[_AsPyType]]]list[_AsPyType]c                    d S rZ   r[   r\   s     r]   r^   r^   g   s	     cr_   pa.Scalar[Any] | Anyr   c                    d S rZ   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 rZ   r[   )rT   s   r]   <lambda>z)maybe_extract_py_scalar.<locals>.<lambda>y   s    u r_   )r   ri   getattrr\   s   ` r]   r^   r^   u   sF     {{}} 85wug}}}}55777Lr_   c                      e Zd Zej        Zdd	Zedd
            ZddZ	dddd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dvZGddxZHdddyd d}ZIdddy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d0dZfd1dZgddZhddZid2dZjdNdd3dZkd4dZld5dĄZmd6dǄZndNdOd7d˄Zod8d9d΄Zpd:dτZqd;dЄZrd<dфZsd=dӄZtd>dքZuddׄZvd#d؄Zwd#dلZxd#dڄZyd#dۄZzd?d߄Z{d?dZ|d@dZ}d@dZ~dAdZdBdZdCdZdDdZdEdZdFdZddZddZddZddZdNdOdGdZedHd            ZedId            ZedJd            ZedKd            ZedLd             Z e            Z xZS (M  ArrowSeriesnative_seriesr9   namestrversionrC   rX   Nonec               >    || _         || _        || _        d| _        d S )NF)_name_native_series_version
_broadcast)selfro   rp   rr   s       r]   __init__zArrowSeries.__init__   s%     
/<r_   c                    | j         S rZ   )rv   ry   s    r]   nativezArrowSeries.native   s    ""r_   r/   c                F    |                      | j        | j        |          S N)rp   rr   )	__class__r}   ru   )ry   rr   s     r]   _with_versionzArrowSeries._with_version   s    ~~dk
G~LLLr_   Fpreserve_broadcastseriesr8   r   rW   c               v    |                      t          |          | j        |           }|r| j        |_        |S )Nrp   context)from_nativer   rp   rx   )ry   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 Nrx   Tr   )r   rx   rl   r   aliasrp   )ry   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 rZ   r[   )xyr   s     r]   rk   z0ArrowSeries._with_binary_right.<locals>.<lambda>   s    bbAhh r_   )r   r   rp   )ry   r   r   s    ` r]   _with_binary_rightzArrowSeries._with_binary_right   s3      !6!6!6!6>>DDTYOOOr_    N)rp   dtypedataIterable[Any]r   rD   r   IntoDType | Nonec               "   |j         }|_t          ||          }t          |          r|                    |          }d }|                     |          r|nt          |g|          }nt          |g          }|                     |||          S )N)r   rp   )rw   r   r   r   
_is_nativer   r   )clsr   r   rp   r   rr   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_   rT   c                    t          |d          r|                                }t                                          |          S )Nri   )hasattrri   super_from_scalar)ry   rT   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 rZ   )
isinstancepaChunkedArray)r   s    r]   r   zArrowSeries._is_native   s    #r///r_   rp   c              (     | ||j         |          S )N)rr   rp   )rw   )r   r   r   rp   s       r]   r   zArrowSeries.from_native   s     s4!1====r_   rH   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          d t          ||          D                       	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   | ]\  }}|j         |V  d S rZ   )rx   )r   lengthr   s      r]   	<genexpr>z4ArrowSeries._align_full_broadcast.<locals>.<genexpr>   sA       
 
 vq

 
 
 
 
 
r_   c              3  $   K   | ]
}|k    V  d S rZ   r[   )r   _lentarget_lengths     r]   r   z4ArrowSeries._align_full_broadcast.<locals>.<genexpr>   s(      BB$-BBBBBBr_   r   zExpected object of length z, got .)maxzipallrx   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*** 
 
$'$8$8
 
 
 
 
 BBBB'BBBBB	 	M 	' 	'A| NN29QXa[-+P+PQQ		 #A&*=88U=UU
UUU oo%	OOI&&&&r_   r5   c                0    ddl m}  || j                  S )Nr   r4   )rr   )narwhals._arrow.namespacer5   rw   )ry   r5   s     r]   __narwhals_namespace__z"ArrowSeries.__narwhals_namespace__   s)    <<<<<<~dm4444r_   objectc                B    |                      t          j        |          S rZ   )r   pcequalry   r   s     r]   __eq__zArrowSeries.__eq__         5111r_   c                B    |                      t          j        |          S rZ   )r   r   	not_equalr   s     r]   __ne__zArrowSeries.__ne__   s      u555r_   c                B    |                      t          j        |          S rZ   )r   r   greater_equalr   s     r]   __ge__zArrowSeries.__ge__   s      !15999r_   c                B    |                      t          j        |          S rZ   )r   r   greaterr   s     r]   __gt__zArrowSeries.__gt__   s      U333r_   c                B    |                      t          j        |          S rZ   )r   r   
less_equalr   s     r]   __le__zArrowSeries.__le__         666r_   c                B    |                      t          j        |          S rZ   )r   r   lessr   s     r]   __lt__zArrowSeries.__lt__   s      %000r_   c                B    |                      t          j        |          S rZ   )r   r   
and_kleener   s     r]   __and__zArrowSeries.__and__   r   r_   c                B    |                      t          j        |          S rZ   )r   r   r   r   s     r]   __rand__zArrowSeries.__rand__   s    &&r}e<<<r_   c                B    |                      t          j        |          S rZ   r   r   	or_kleener   s     r]   __or__zArrowSeries.__or__       &&r|U;;;r_   c                B    |                      t          j        |          S rZ   r   r   s     r]   __ror__zArrowSeries.__ror__   r   r_   c                B    |                      t          j        |          S rZ   )r   r   addr   s     r]   __add__zArrowSeries.__add__  s      ///r_   c                B    |                      t          j        |          S rZ   )r   r   r   r   s     r]   __radd__zArrowSeries.__radd__  s    &&rvu555r_   c                B    |                      t          j        |          S rZ   )r   r   subtractr   s     r]   __sub__zArrowSeries.__sub__        e444r_   c                B    |                      t          j        |          S rZ   )r   r   r   r   s     r]   __rsub__zArrowSeries.__rsub__      &&r{E:::r_   c                B    |                      t          j        |          S rZ   )r   r   multiplyr   s     r]   __mul__zArrowSeries.__mul__  r   r_   c                B    |                      t          j        |          S rZ   )r   r   r   r   s     r]   __rmul__zArrowSeries.__rmul__  r   r_   c                B    |                      t          j        |          S rZ   )r   r   powerr   s     r]   __pow__zArrowSeries.__pow__  r   r_   c                B    |                      t          j        |          S rZ   )r   r   r  r   s     r]   __rpow__zArrowSeries.__rpow__  s    &&rx777r_   c                8    |                      t          |          S rZ   )r   r   r   s     r]   __floordiv__zArrowSeries.__floordiv__  s      %888r_   c                8    |                      t          |          S rZ   )r   r   r   s     r]   __rfloordiv__zArrowSeries.__rfloordiv__  s    &&>>>r_   c                0    |                      d |          S )Nc                :    t          j        t          | |           S rZ   r   divider   r   r   s     r]   rk   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 rZ   r  r  s     r]   rk   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   rx   rl   r}   r   r   r   r   r   ry   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__6  '      4;!7!7D QQQr_   pa.DataTypec                    | j         j        S rZ   )r}   typer|   s    r]   _typezArrowSeries._type9  s    {r_   T)_return_py_scalarr'  intc               F    t          t          | j                  |          S rZ   )r^   r   r}   ry   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 rZ   )r%   rW   r   r   r}   filter)ry   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^   )ry   r'  r   s      r]   firstzArrowSeries.firstH  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^   )ry   r'  caheightr   s        r]   lastzArrowSeries.lastL  s;    [.1"gg$5F@FQJD&v/@AAAr_   floatc               P    t          t          j        | j                  |          S rZ   )r^   r   meanr}   r*  s     r]   r;  zArrowSeries.meanQ  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}   )ry   r'  r   s      r]   medianzArrowSeries.medianT  sP    z$$&& 	-PC',,,&!$+..0A
 
 	
r_   c               P    t          t          j        | j                  |          S rZ   )r^   r   minr}   r*  s     r]   rA  zArrowSeries.min]      &rvdk':':<MNNNr_   c               P    t          t          j        | j                  |          S rZ   )r^   r   r   r}   r*  s     r]   r   zArrowSeries.max`  rB  r_   c                   t          j        | j        t          j        | j                            }t	          ||          S rZ   )r   indexr}   rA  r^   )ry   r'  	index_mins      r]   arg_minzArrowSeries.arg_minc  2    HT["&*=*=>>	&y2CDDDr_   c                   t          j        | j        t          j        | j                            }t	          ||          S rZ   )r   rE  r}   r   r^   )ry   r'  	index_maxs      r]   arg_maxzArrowSeries.arg_maxg  rH  r_   c               T    t          t          j        | j        d          |          S Nr   	min_count)r^   r   sumr}   r*  s     r]   rP  zArrowSeries.sumk  +    &F4;!,,,.?
 
 	
r_   c                Z    |                      | j                                                  S rZ   )r   r}   	drop_nullr|   s    r]   
drop_nullszArrowSeries.drop_nullsp  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 r1  )r   r}   chunksr   r   concat_arrays)ry   rU  arrayss      r]   shiftzArrowSeries.shifts  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)r[  )r^   r   stddevr}   ry   r[  r'  s      r]   stdzArrowSeries.std|  s+    &Idk---/@
 
 	
r_   c               T    t          t          j        | j        |          |          S r]  )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   r5  nan   g           g      ?r}   rS  r   r9  r   r   r;  r  r   r  r^   )ry   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   r5  rf  rg     rh  ri  )ry   r'  rj  rk  rl  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 rZ   )r^   r   countr}   r*  s     r]   rv  zArrowSeries.count  s    &rx'<'<>OPPPr_   c               x    t          t          j        | j                                        d          |          S )Nr   )mode)r^   r   rv  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)ry   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 rZ   )ru   r|   s    r]   rp   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)ry   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   r5  z4Slicing with step is not supported on PyArrow tables)startstopr   r}   stepNotImplementedErrorr   r  )ry   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valuesc                V   t          j        t          dt          |           d          |j                  }t          j        |j                  }|j                            |                                          }|                     t          j	        | j        ||                    S )Nr   r5  )r  endr  )
r   is_inr   r   r}   sort_indicesr  combine_chunksr   replace_with_mask)ry   r  r  masksorted_indicesreplacementss         r]   scatterzArrowSeries.scatter  s    xQCIIA>>>OO88})).99HHJJ  !5dk4!V!VWWWr_   	list[Any]c                4    | j                                         S rZ   )r}   	to_pylistr|   s    r]   to_listzArrowSeries.to_list  s    {$$&&&r_   )copyr  bool | NonerP   c               :    | j                             ||          S )N)r   r  )r}   	__array__ry   r   r  s      r]   r  zArrowSeries.__array__  s    {$$5t$<<<r_   c               4    | j                                         S rZ   )r}   to_numpyr  s      r]   r  zArrowSeries.to_numpy  s    {##%%%r_   c                b    |                      | j        || j                  }| j        |_        |S r   )r   r}   rw   rx   )ry   rp   rets      r]   r   zArrowSeries.alias  s+    nnT[tT]nKK
r_   rE   c                @    t          | j        j        | j                  S rZ   )r   r}   r%  rw   r|   s    r]   r   zArrowSeries.dtype  s    '(8$-HHHr_   c                Z    |                      t          j        | j                            S rZ   )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   )ry   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}   )ry   r  s     r]   r  zArrowSeries.round  s1      HT[(7NOOO
 
 	
r_   c                Z    |                      t          j        | j                            S rZ   )r   r   floorr}   r|   s    r]   r  zArrowSeries.floor  s"      $+!6!6777r_   c                Z    |                      t          j        | j                            S rZ   )r   r   ceilr}   r|   s    r]   r  zArrowSeries.ceil  "      !5!5666r_   c                ~    |                      t          j        | j                                                            S rZ   )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 rM  )r^   r   anyr}   r*  s     r]   r  zArrowSeries.any  rQ  r_   c               T    t          t          j        | j        d          |          S rM  )r^   r   r   r}   r*  s     r]   r   zArrowSeries.all  rQ  r_   lower_boundupper_boundclosedrF   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   )
ry   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_null  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_nan  r"  r_   rI   c                    t          || j                  }|                     t          j        | j        |          d          S r  )r   rw   r   r   r   r}   )ry   r   	data_types      r]   r   zArrowSeries.cast!  s;    ,UDMBB	  i!@!@UY ZZZr_   c               6    t          | j        j        |          S rZ   )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 r1  )r   r}   r  r   r   ry   rU  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 r1  )r   r   r}   r  r   r  r  s      r]   tailzArrowSeries.tail.  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   arrayr   r   r  r}   )ry   r   r  s      r]   r  zArrowSeries.is_in4  sO    ??5!! 	(-2III  $+!K!K!KLLLr_   c                x    dd l }|                    | j                  }|                     || j        |           S )Nr   r   )numpyflatnonzeror}   r   rp   )ry   npr  s      r]   arg_truezArrowSeries.arg_true;  s>    nnT[))!!#DIt!DDDr_   rE  
int | Nonec                    |Qt          |           dk    r"dt          |            d}t          |          t          | j        d         d          S t          | j        |         d          S )Nr5  zlcan only call '.item()' if the Series is of length 1, or an explicit index is provided (Series is of length )r   TrV   )r   
ValueErrorr^   r}   )ry   rE  r   s      r]   itemzArrowSeries.itemA  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   NrE  
proportionrv  r  r9   countsnames
descendingTrr   validate_column_names)narwhals._arrow.dataframer3   ru   r   value_countsr}   fieldr   r  r   rP  r   Tablefrom_arrayssort_byrw   )ry   r  r  rp   r  r3   index_name_value_name_
val_countsr  r  rY  	val_counts                r]   r  zArrowSeries.value_countsL  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 rZ   )r}   r  r   r   if_else)ry   r  r   conds       r]   zip_withzArrowSeries.zip_withg  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_rngr   choicer   r}   r  )
ry   rU  r
  r  r  r  r  rngidxr  s
             r]   samplezArrowSeries.samplek  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   )ry   rT   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}| j         }|)t          | |          \  }}t          j        ||          }na|/|dk    rt          j        |          nt          j        |          }n0|dk    r |||          n ||d d d	         |          d d d	         }|                     |d
          S )Narrr9   r  r(  rX   r6   c                   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
        ||          | |                     |                    S )Nr  r   r5  )r   r   is_validr   r   cumulative_maxr  r   r   r   or_r  )r  r  sentinelis_not_nullrE  index_not_nullnot_oobbeyond_limits           r]   fill_null_forward_limitz6ArrowSeries.fill_null.<locals>.fill_null_forward_limit  s     2wwH+c**K1c#hh**E.rz+uh/W/WXXN l>8<<GZFFN:bk%&H&H#e**UUL:{L1138P8P  r_   forwardr  Tr   )r  r9   r  r(  rX   r6   )r}   r   r   	fill_nullfill_null_forwardfill_null_backwardr   )	ry   rT   r  r  r'  r}   r/  native_valuer   s	            r]   r)  zArrowSeries.fill_null  s    	 	 	 	" ,T599OA|$&L$F$FFF] y(( $V,,,*622 F y(( ('666,,VDDbD\5AA$$B$G 
   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}   rp   rw   )ry   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}   rp   )ry   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   r6  )polarsr   
from_arrowr}   )ry   pls     r]   	to_polarszArrowSeries.to_polars  s,    Kt{!;!;<<<r_   c                ~    |                                                                                      | j                  S rZ   )r/  	is_uniquer   rp   r|   s    r]   r=  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  rA  _minr  r   r  r   r   r$   rp   r  r   r}   append_columngroup_by	aggregatecolumnr   r   r  )ry   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   r?  r@  r  r   _maxrD  )ry   r  rI  rJ  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  r5  Tr  )
r   rW   r%  	TypeErrorr   r   r   r}   r   r^   )ry   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_orderrU  c               Z    |                      | j                                                  S rZ   )r   r}   ry  )ry   rU  s     r]   ry  zArrowSeries.unique  s$      !3!3!5!5666r_   defaultAny | NoDefaultoldSequence[Any]newreturn_dtypec               r   t          j        | j        t          j        |                    }t          j        |          }t          j        t          j        |          |          }|(|                    t          || j	                            }| 
                    |          }|t          u rt          j        t          j        | j                  t          j        |                    }	t          t          j        |	d          d          rb|                     | 
                    |	                                        d                                          }
d|
 }t'          |          nAt)          ||          \  }}| 
                    t          j        ||j        |                    }|S )Nr   rN  Tr  FrT  zYreplace_strict did not replace all non-null values.

The following did not get replaced: )r   index_inr}   r   r  r  r  r   r   rw   r   r&   and_r   r^   r  r.  ry  r  r)   r   r  )ry   rW  rY  r[  r\  idxswas_matchedresult_nativer   unmatched_maskunmatched_valuesr   s               r]   replace_strictzArrowSeries.replace_strict  s    {4;66k$''t44#)..(t}EE M ""=11j    WR[%=%=ry?U?UVVN&~333d   1 KK 1 1. A ABBV5V11WYY !N;KN N  ,C0001 &4FG%D%D"M7 &&rz+v}g'V'VWWF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  )ry   r  rf  rk  rl  r  s         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   encoder5  rs   nullc                X    g | ]&}i                       |   |           'S r[   )get)r   vrp   null_col_panull_col_plrn  s     r]   r   z*ArrowSeries.to_dummies.<locals>.<listcomp>(  se     
 
 
  +&**''A''D)@))@Q)@)@ 
 
 
r_   c                     g | ]
}|k    |S r[   r[   )r   crw  s     r]   r   z*ArrowSeries.to_dummies.<locals>.<listcomp>2  s#    ===qA,<,<,<,<,<r_   r  Tr  )r  r  r3   ru   r}   r  dictionary_encoder   r   
dictionaryint8r  r   sortedr(  r   r  r   rw   simple_select)ry   rn  ro  r  r3   darB  colsoutput_orderrp   rv  rw  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}   )ry   r  r  r'  s       r]   r  zArrowSeries.quantile=  s4     'Kx}MMMaP
 
 	
r_   r   offsetc                H    |                      | j        |d |                   S rZ   )r   r}   )ry   rU  r  s      r]   gather_everyzArrowSeries.gather_everyI  s#      VYQY!7888r_   c                    t          | |          \  }}t          | |          \  }}|                     t          j        t          j        | j        |          |                    S rZ   )r   r   r   max_element_wisemin_element_wiser}   )ry   r  r  r/  loweruppers         r]   clipzArrowSeries.clipL  s_    !$445!$445   3DK G GOO
 
 	
r_   c                    t          | |          \  }}|                     t          j        | j        |                    S rZ   )r   r   r   r  r}   )ry   r  r/  r  s       r]   
clip_lowerzArrowSeries.clip_lowerS  8    !$445  !4T[%!H!HIIIr_   c                    t          | |          \  }}|                     t          j        | j        |                    S rZ   )r   r   r   r  r}   )ry   r  r/  r  s       r]   
clip_upperzArrowSeries.clip_upperW  r  r_   r6   c                4    | j                                         S rZ   )r}   r  r|   s    r]   to_arrowzArrowSeries.to_arrow[  s    {))+++r_   keeprJ   c                  |                                  }t          d| j        g          }|                     |ddd          }|                    |                    |          |                    |                                                                          k                                  | j                  }|dk    r|	                    d          n|S )Nr?  r@  F)rp   r  r  r  r  r5  )
r   r$   rp   r  r.  colr   	broadcast
get_columnr  )ry   r  plxrJ  r  r   s         r]   rx  zArrowSeries.mode^  s    ))++21tykRRR	""e%% # 
 
 GGI#'')"4"4"8"8":":"D"D"F"FF
 

*TY

 	 "&v{{1~~~F:r_   c                Z    |                      t          j        | j                            S rZ   )r   r   	is_finiter}   r|   s    r]   r  zArrowSeries.is_finitei  s"      dk!:!:;;;r_   c                   | j         j        }|                                                      |                                                              |          S )Nr  )rw   dtypesr  r   UInt32r  )ry   r  r  s      r]   	cum_countzArrowSeries.cum_countl  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   ry   r  r   s      r]   cum_minzArrowSeries.cum_minp  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   r   r}   r   r  s      r]   cum_maxzArrowSeries.cum_maxx  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(  rT   r  r  r   r   r  r)  rZ  r  r   r   r  r}   r  r  ry   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   rg  )r   r  r)  rZ  powr  r   r   r  r}   r  r  r  )ry   r  r  r  r[  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  r[        ?)r  )ry   r  r  r  r[  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  ordinalr2  )   r   r   )	sort_keys
tiebreaker)r  r  r}   r  r   r  rankr  r   r%  r   )
ry   r  r  r   r  r  ro   	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_binsr/  )ry   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_countr/  )ry   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^   )ry   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ArrowTypeError)r%  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)   )ry   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 rZ   )r   r   logbr}   r   )ry   r  s     r]   logzArrowSeries.log0  s*      c$ii!@!@AAAr_   c                Z    |                      t          j        | j                            S rZ   )r   r   expr}   r|   s    r]   r  zArrowSeries.exp3  r  r_   c                Z    |                      t          j        | j                            S rZ   )r   r   sqrtr}   r|   s    r]   r  zArrowSeries.sqrt6  r  r_   c                Z    |                      t          j        | j                            S rZ   )r   r   sinr}   r|   s    r]   r  zArrowSeries.sin9  r  r_   c                Z    |                      t          j        | j                            S rZ   )r   r   cosr}   r|   s    r]   r  zArrowSeries.cos<  r  r_   ignore_nullsc               z    |r&|                                                                  n|                                 S rZ   )rT  r2  )ry   r  r'  s      r]   	any_valuezArrowSeries.any_value?  s2     -9Jt  &&(((djjllJr_   r   c                     t          |           S rZ   r   r|   s    r]   dtzArrowSeries.dtD  s    +D111r_   r   c                     t          |           S rZ   r
   r|   s    r]   catzArrowSeries.catH  s    &t,,,r_   r   c                     t          |           S rZ   r   r|   s    r]   rq   zArrowSeries.strL      )$///r_   r   c                     t          |           S rZ   r   r|   s    r]   r  zArrowSeries.listP  s    '---r_   r   c                     t          |           S rZ   r   r|   s    r]   structzArrowSeries.structT  r  r_   )ro   r9   rp   rq   rr   rC   rX   rs   )rX   r9   )rr   rC   rX   r/   )r   r8   r   rW   rX   r/   )r   r   r   r   rX   r/   )
r   r   r   rD   rp   rq   r   r   rX   r/   )rT   r   rX   r/   )r   r   rX   r   )r   r9   r   rD   rp   rq   rX   r/   )r   rH   r   rD   rX   r/   )r   r/   rX   r   )rX   r5   )r   r   rX   r/   )r   r   rX   r/   )rX   r/   )rX   r#  )r'  rW   rX   r(  )r+  r,  rX   r/   )r'  rW   rX   rL   )r'  rW   rX   r9  )r'  rW   rX   r   )rU  r(  rX   r/   )r[  r(  r'  rW   rX   r9  )r'  rW   rX   rd  )rX   r.   )rX   rq   )r  r  rX   r/   )r  r  rX   r/   )r  r/   r  r/   rX   r/   )rX   r  rZ   )r   r   r  r  rX   rP   )rp   rq   rX   r/   )rX   rE   )r  rW   rX   r/   )r  r(  rX   r/   )r'  rW   rX   rW   )r  r   r  r   r  rF   rX   r/   )r   rI   rX   r/   )rE  r  rX   r   )
r  rW   r  rW   rp   r  r  rW   rX   r3   )r  r/   r   r/   rX   r/   )
rU  r  r
  rd  r  rW   r  r  rX   r/   )rT   rd  rX   r/   )rT   r  r  r  r  r  rX   r/   rX   r3   )rX   r0  )rX   r6  )rX   rn   )r  rW   rX   rW   )rU  rW   rX   r/   )
rW  rX  rY  rZ  r[  rZ  r\  r   rX   r/   )r  rW   rf  rW   rX   r/   )rn  rq   ro  rW   rX   r3   )r  r9  r  rN   r'  rW   rX   r9  )r   )rU  r(  r  r(  rX   r/   )r  r/   r  r/   rX   r/   )r  r/   rX   r/   )r  r/   rX   r/   )rX   r6   )r  rJ   rX   rn   )r  r(  r  r(  r  rW   rX   r/   )
r  r(  r  r(  r  rW   r[  r(  rX   r/   )r  rM   r  rW   rX   r/   )r  r  r  rW   rX   r3   )r  r(  r  rW   rX   r3   )rX   r  )r   r   rX   rW   )r  r9  rX   r/   )r  rW   r'  rW   rX   rL   )rX   r   )rX   r   )rX   r   )rX   r   )rX   r   )__name__
__module____qualname__r#   r}  r|  rz   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.  r2  r8  r;  r?  rA  r   rG  rK  rP  rT  rZ  r`  rc  ro  rt  rv  rz  r  rp   r  r  r  r  r  r  r   r   r  r  r  r  r  r  r  r   r  r  r  r   r  r  r  r  r  r  r  r	  r  r  r)  r/  r5  r;  r=  rL  rP  rS  ry  re  r  r  r  r  r  r  r  r  rx  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  r'   ewm_mean__classcell__)r   s   @r]   rn   rn   }   s       $,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X X X X' ' ' '=$ = = = = = =& & & & & & &   
 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R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( ( ( (TC C C C' ' ' 'L #'

 

 

 

 

 

9 9 9 9 9
 
 
 
J J J JJ J J J, , , ,	; 	; 	; 	;< < < <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6 6 6 66 6 6 6 @DK K K K K K
 2 2 2 X2 - - - X- 0 0 0 X0 . . . X. 0 0 0 X0   HHHHHr_   rn   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  rn   _seriesrX   r3   c                    t           j        j        }| j                                        j        j        } | || j                  | j                  S r   )r   r  from_pydictr  r   
_dataframer   _data)ry   tabler   s      r]   r/  z_ArrowHist.to_frame`  sH    H0l99;;FR{55,,dlCCCCr_   rW   c                    | j                             d          }t          d|                                          }|j        dk    S )NT)nan_is_nullzpa.BooleanArrayr   )r}   r  r   r  false_count)ry   r  r  s      r]   is_empty_seriesz_ArrowHist.is_empty_seriesg  sE     +%%$%77$g&<&<&>&>??!##r_   argint | list[float]rS   c               r    |                      |          }| j        r|                     |          |dS d|iS )N
breakpointrv  rv  )_zeros_breakpoint_calculate_breakpoint)ry   r  rv  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 r4  )r   r(  r   r   )ry   r  s     r]   r  z_ArrowHist._zerosw  s3    'S11JuSzzzuSXX\7J7JJr_   r  )r  r  r9  r  num_samplesr(  r  Literal['both', 'none']rP   c               4    ddl m}  |||||dk              S )Nr   )linspacer  )r  r  numendpoint)r  r   )ry   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.rA  r   r  r5  )r   min_maxr}   ri   r#  )ry   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  rg  r   r5  r  r  rv  r  )sideT)return_counts)r}   r   r   r   r_  r   r   r   rP  r   uint8r  r  searchsortedr  r   ry  r   
zeros_likeisin)ry   r  r   is_between_binsrv  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  )rX   rW   )r  r  rX   rS   )r  r  rX   r  )
r  r9  r  r9  r  r(  r  r  rX   rP   )r  r(  rX   rP   )r  r(  rX   rS   )r  r   r  __annotations__r/  r  r  r  r#  r'  r5  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])rT   rU   rV   rW   rX   r?   )rT   r`   rV   rW   rX   ra   )rT   rc   rV   rW   rX   rd   )rT   rf   rV   rW   rX   r   )rT   r   rV   rW   rX   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.   r2  r4  r8  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   r6  r^   rn   r  r[   r_   r]   <module>rN     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                            = < < < < < < < 0 0 0 0 0 0              4 3 3 3 3 3 A A A A A A A A -<<<<<<<<<<      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_   