
    g                       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 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 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 d dlmZ d dlmZ d dlmZ d dlmZ er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( i dd d!d d"d#d$d#d%d&d'd&d(d)d*d)d+d,d-d,d.d/d0d/d1d2d3d2d4d5d6d5d7d8d8d9d9d:Z)i dd8d!d8d"d8d$d8d%d8d'd8d(d8d*d8d+d8d-d8d.d8d0d8d1d8d3d8d4d8d6d8d7d8d8d9d9d:Z* G d; d<e      Z+ G d= d>      Z, G d? d@      Z- G dA dB      Z. G dC dD      Z/yE)F    )annotations)TYPE_CHECKING)Any)Iterable)Iterator)Literal)Sequence)overload)"broadcast_align_and_extract_native)calculate_timestamp_date)calculate_timestamp_datetime)int_dtype_mapper)narwhals_to_native_dtypenative_series_from_iterable)native_to_narwhals_dtype)rename)select_columns_by_name)	set_index)to_datetime)is_numpy_scalar)InvalidOperationError)CompliantSeries)Implementationimport_dtypes_module)validate_backend_version)
ModuleType)SelfPandasLikeDataFrame)DType)VersionInt64int64zint64[pyarrow]Int32int32zint32[pyarrow]Int16int16zint16[pyarrow]Int8int8zint8[pyarrow]UInt64uint64zuint64[pyarrow]UInt32uint32zuint32[pyarrow]UInt16uint16zuint16[pyarrow]UInt8uint8zuint8[pyarrow]Float64float64float32)zfloat64[pyarrow]Float32zfloat32[pyarrow]c                     e Zd Z	 	 	 	 	 	 	 	 	 	 d~dZddZddZedd       Zedd       ZddZddZddZ	e
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd	       Zdd
Zedd       Zedd       Zedd       Zdddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddZ	 	 	 	 ddZdddZddZddZ	 d	 	 	 	 	 	 	 ddZddZddZddZddZddZddZdd Zdd!Zdd"Z dd#Z!dd$Z"dd%Z#dd&Z$dd'Z%dd(Z&dd)Z'dd*Z(dd+Z)dd,Z*dd-Z+dd.Z,dd/Z-dd0Z.dd1Z/dd2Z0dd3Z1dd4Z2dd5Z3dd6Z4dd7Z5dd8Z6dd9Z7dd:Z8dd;Z9dd<Z:dd=Z;dd>Z<dd?Z=dd@Z>ddAZ?ddBZ@ddCZAddDZBddEZC	 	 	 d	 	 	 	 	 	 	 ddFZDddGZEddHZF	 dddddI	 	 	 	 	 	 	 	 	 	 	 ddJZGddKZHddLZIddMddNZJddOZKddPZL	 	 	 	 	 	 	 	 ddQZMdddR	 	 	 	 	 ddSZNddTZOdddUZPdddVZQddWZRddXZSddYZTddZZUdd[ZVdd\ZWdd]ZXdd^dd_ZYddddd`	 	 	 	 	 	 	 	 	 	 	 ddaZZ	 	 	 	 	 	 	 	 ddbZ[ddcZ\dddZ]ddeZ^ddfZ_dgddh	 	 	 	 	 	 	 ddiZ`dddjZa	 	 	 	 	 	 	 	 ddkZbddlZcddmZdddnZeddoZfddpZgddqZh	 	 	 	 	 	 	 	 	 	 ddrZi	 	 	 	 	 	 	 	 	 	 ddsZj	 	 	 	 	 	 	 	 	 	 	 	 ddtZk	 	 	 	 	 	 	 	 	 	 	 	 dduZlddvZmddwZnddxZo	 	 	 	 	 	 	 	 ddyZpeddz       Zqedd{       Zredd|       Zsedd}       Zty)PandasLikeSeriesc                   |j                   | _        || _        || _        || _        || _        t        | j                  | j                         y N)name_name_native_series_implementation_backend_version_versionr   )selfnative_seriesimplementationbackend_versionversions        Q/var/www/openai/venv/lib/python3.12/site-packages/narwhals/_pandas_like/series.py__init__zPandasLikeSeries.__init__U   sF     #''
+- / !5!5t7L7LM    c                    | j                   t        j                  t        j                  t        j                  hv r| j                   j                         S dt        | j                          }t        |      )Nz!Expected pandas/modin/cudf, got: )r?   r   PANDASMODINCUDFto_native_namespacetypeAssertionErrorrB   msgs     rG   __native_namespace__z%PandasLikeSeries.__native_namespace__d   sj    !!  $
 

 '';;==1$t7K7K2L1MNS!!rI   c                    | S r;    rB   s    rG   __narwhals_series__z$PandasLikeSeries.__narwhals_series__o   s    rI   c                     y r;   rU   rB   idxs     rG   __getitem__zPandasLikeSeries.__getitem__r   s    ,/rI   c                     y r;   rU   rY   s     rG   r[   zPandasLikeSeries.__getitem__u   s    ?BrI   c                    t        |t              st        |      r| j                  j                  |   S | j                  | j                  j                  |         S r;   )
isinstanceintr   r>   iloc_from_native_seriesrY   s     rG   r[   zPandasLikeSeries.__getitem__x   sL    c3?3#7&&++C00''(;(;(@(@(EFFrI   c                h    | j                  | j                  | j                  | j                  |      S NrD   rE   rF   )	__class__r>   r?   r@   )rB   rF   s     rG   _change_versionz PandasLikeSeries._change_version}   s6    ~~// 11	  
 	
rI   c                h    | j                  || j                  | j                  | j                        S rc   )re   r?   r@   rA   rB   seriess     rG   ra   z$PandasLikeSeries._from_native_series   s4    ~~// 11MM	  
 	
rI   c               4     | t        ||||      |||      S )N)r<   indexrD   rd   r   )clsdatar<   rk   rD   rE   rF   s          rG   _from_iterablezPandasLikeSeries._from_iterable   s0     '-	 *+

 
	
rI   c                     | j                   d   S Nr   )shaperV   s    rG   __len__zPandasLikeSeries.__len__   s    zz!}rI   c                    | j                   S r;   )r=   rV   s    rG   r<   zPandasLikeSeries.name   s    zzrI   c                .    | j                   j                  S r;   )r>   rq   rV   s    rG   rq   zPandasLikeSeries.shape   s    ""(((rI   c                X    t        | j                  | j                  | j                        S r;   )r   r>   rA   r?   rV   s    rG   dtypezPandasLikeSeries.dtype   s&    '0D0D
 	
rI   NT   F)comspan	half_lifealphaadjustmin_periodsignore_nullsc          	     |   | j                   }|j                         }	| j                  t        j                  u rI|dk(  r|r|	j                         s%|j                  |||||      j                         }
n3d}t        |      |j                  |||||||      j                         }
d |
|	<   | j                  |
      S )Nr   )rx   ry   halflifer{   r|   zscuDF only supports `ewm_mean` when there are no missing values or when both `min_period=0` and `ignore_nulls=False`)	ignore_na)
r>   isnar?   r   rM   anyewmmeanNotImplementedErrorra   )rB   rx   ry   rz   r{   r|   r}   r~   sermask_naresultrR   s               rG   ewm_meanzPandasLikeSeries.ewm_mean   s     !!((*>#6#66q w{{}$%PV ! $& 
K  *#..WWT9e[&L  df  w''//rI   c                v   t        || j                        rWt        | |      \  }}t        |j	                         | j
                  j                  |   | j                  | j                        }| j
                  j	                  d      }||j                  |<   | j                  |_
        | j                  |      S )NrD   rE   T)deep)r^   re   r   r   copyr>   rk   r?   r@   r`   r<   ra   )rB   indicesvalues_ss        rG   scatterzPandasLikeSeries.scatter   s    fdnn- ;4HIAv##))'2#33 $ 5 5	F $$$$/ w''**rI   c                    | j                   }t        ||j                  | j                  | j                  | j
                        }| j                  |j                  |            S r;   )r>   r   rv   r?   r@   rA   ra   astype)rB   rv   r   s      rG   castzPandasLikeSeries.cast   sT     !!(399d22D4I4I4==
 ''

5(9::rI   c                    |At        |       dk7  rdt        |        d}t        |      | j                  j                  d   S | j                  j                  |   S )Nrw   zlcan only call '.item()' if the Series is of length 1, or an explicit index is provided (Series is of length )r   )len
ValueErrorr>   r`   )rB   rk   rR   s      rG   itemzPandasLikeSeries.item   sj    =4yA~NNQRVi[XY[  !o%&&++A..""''..rI   c                    ddl m}  || j                  j                         | j                  | j
                  | j                        S )Nr   r    rd   )narwhals._pandas_like.dataframer!   r>   to_framer?   r@   rA   )rB   r!   s     rG   r   zPandasLikeSeries.to_frame   s=    G"((*// 11MM	
 	
rI   c                    | j                   t        j                  u r(| j                  j	                         j                         S | j                  j                         S r;   )r?   r   rM   r>   to_arrow	to_pylistto_listrV   s    rG   r   zPandasLikeSeries.to_list  sI    >#6#66&&//1;;==""**,,rI   c                "   | j                   }t        | |      \  }}t        | |      \  }}|dk(  r$|j                  |      |j                  |      z  }n|dk(  r$|j	                  |      |j                  |      z  }nX|dk(  r$|j	                  |      |j                  |      z  }n/|dk(  r$|j                  |      |j                  |      z  }nt        | j                  t        ||j                  | j                  | j                              S )Nleftrightnonebothr   )r>   r   geltgtlerP   ra   r   r<   r?   r@   )rB   lower_boundupper_boundclosedr   r   ress          rG   
is_betweenzPandasLikeSeries.is_between	  s     !!;D+N;;D+N;V&&%{(;;Cw&&%{(;;Cv&&%{(;;Cv&&%{(;;C  ''#33 $ 5 5	
 	
rI   c                ^    | j                   }|j                  |      }| j                  |      S r;   )r>   isinra   )rB   otherr   r   s       rG   is_inzPandasLikeSeries.is_in"  s+    !!hhuo'',,rI   c                    | j                   }|j                  t        t        |            |j                  |j
                        j                  |   }| j                  |      S )N)r<   rk   )r>   re   ranger   r<   rk   locra   )rB   r   r   s      rG   arg_truezPandasLikeSeries.arg_true'  sN    !!uSXSXXSYYOSSTWX''//rI   c                    | j                   }| j                  t        j                  u r)| j                  dk  r|j
                  j                         S |j                         S Nrw   )r>   r?   r   rK   r@   r   argminrB   r   s     rG   arg_minzPandasLikeSeries.arg_min,  N    !!>#8#88T=R=RUY=Y::$$&&zz|rI   c                    | j                   }| j                  t        j                  u r)| j                  dk  r|j
                  j                         S |j                         S r   )r>   r?   r   rK   r@   r   argmaxr   s     rG   arg_maxzPandasLikeSeries.arg_max2  r   rI   c                   t        |t              rt        d |D              st        | |      \  }}n| j                  }| j                  t        |j                  |   |j                  | j                  | j                              S )Nc              3  <   K   | ]  }t        |t                y wr;   )r^   bool).0xs     rG   	<genexpr>z*PandasLikeSeries.filter.<locals>.<genexpr>;  s     /SU
1d0CUs   r   )r^   listallr   r>   ra   r   r   r<   r?   r@   rB   r   r   s      rG   filterzPandasLikeSeries.filter:  ss    5$'C/SU/S,S;D%HJC%%C''#33 $ 5 5	
 	
rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S Nr   )r   ra   r   __eq__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__eq__H  R    7eD
U''

5!#33 $ 5 5	
 	
rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __ne__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__ne__S  r   rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __ge__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__ge__^  r   rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __gt__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__gt__i  r   rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __le__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__le__t  r   rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __lt__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__lt__  r   rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   r   ra   r   __and__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__and__  R    7eD
U''E"#33 $ 5 5	
 	
rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   r   r   s      rG   __rand__zPandasLikeSeries.__rand__  r   rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   r   ra   r   __or__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__or__  r   rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   r   r   s      rG   __ror__zPandasLikeSeries.__ror__  r   rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __add__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__add__  r   rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __radd__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__radd__  R    7eD
U''U##33 $ 5 5	
 	
rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __sub__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__sub__  r   rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __rsub__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__rsub__  r   rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __mul__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__mul__  r   rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __rmul__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__rmul__  r   rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __truediv__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__truediv__  sR    7eD
U''&#33 $ 5 5	
 	
rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __rtruediv__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__rtruediv__  T    7eD
U''  '#33 $ 5 5	
 	
rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __floordiv__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__floordiv__  r   rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __rfloordiv__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__rfloordiv__  sT    7eD
U''!!%(#33 $ 5 5	
 	
rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __pow__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__pow__$  r   rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __rpow__r<   r?   r@   r   s      rG   r   zPandasLikeSeries.__rpow__/  r   rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __mod__r<   r?   r@   r   s      rG   r  zPandasLikeSeries.__mod__:  r   rI   c                    t        | |      \  }}| j                  t        |j                  |      |j                  | j
                  | j                              S r   )r   ra   r   __rmod__r<   r?   r@   r   s      rG   r  zPandasLikeSeries.__rmod__E  r   rI   c                >    | j                   }| j                  |       S r;   )r>   ra   r   s     rG   
__invert__zPandasLikeSeries.__invert__R  s     !!''--rI   c                :    | j                   }|j                         S r;   )r>   r   r   s     rG   r   zPandasLikeSeries.anyX      !!wwyrI   c                :    | j                   }|j                         S r;   )r>   r   r   s     rG   r   zPandasLikeSeries.all\  r  rI   c                :    | j                   }|j                         S r;   )r>   minr   s     rG   r
  zPandasLikeSeries.min`  r  rI   c                :    | j                   }|j                         S r;   )r>   maxr   s     rG   r  zPandasLikeSeries.maxd  r  rI   c                :    | j                   }|j                         S r;   )r>   sumr   s     rG   r  zPandasLikeSeries.sumh  r  rI   c                :    | j                   }|j                         S r;   )r>   countr   s     rG   r  zPandasLikeSeries.countl  s    !!yy{rI   c                :    | j                   }|j                         S r;   )r>   r   r   s     rG   r   zPandasLikeSeries.meanp  s    !!xxzrI   c                    | j                   j                         sd}t        |      | j                  }|j	                         S )Nz<`median` operation not supported for non-numeric input type.)rv   
is_numericr   r>   median)rB   rR   r   s      rG   r  zPandasLikeSeries.mediant  s9    zz$$&PC',,!!zz|rI   c               >    | j                   }|j                  |      S Nddof)r>   stdrB   r  r   s      rG   r  zPandasLikeSeries.std{      !!wwDw!!rI   c               >    | j                   }|j                  |      S r  )r>   varr  s      rG   r  zPandasLikeSeries.var  r  rI   c                J   | j                   }|j                         }t        |      dk(  ry t        |      dk(  rt        d      S t        |      dk(  ry||j	                         z
  }|dz  j	                         }|dz  j	                         }|dk7  r||dz  z  S t        d      S )Nr   rw   nan   g           g      ?)r>   dropnar   floatr   )rB   r   ser_not_nullmm2m3s         rG   skewzPandasLikeSeries.skew  s    !!zz||!!#<!#|0022AQ$BQ$B%'1W2S>>%,>rI   c                ,    t        | j                        S r;   )r   r>   rV   s    rG   r   zPandasLikeSeries.len  s    4&&''rI   c                X    | j                   }| j                  |j                               S r;   )r>   ra   r   r   s     rG   is_nullzPandasLikeSeries.is_null  s$    !!''
33rI   c                    | j                   }| j                  j                         r| j                  ||k7        S d| j                   d}t	        |      )Nz3`.is_nan` only supported for numeric dtype and not z, did you mean `.is_null`?)r>   rv   r  ra   r   )rB   r   rR   s      rG   is_nanzPandasLikeSeries.is_nan  sP    !!::  "++C3J77CDJJ<Oij#C((rI   c                    | j                   }|#| j                  |j                  |            }|S | j                  |dk(  r|j                  |      n|j	                  |            }|S )N)valueforward)limit)r>   ra   fillnaffillbfill)rB   r/  strategyr1  r   res_sers         rG   	fill_nullzPandasLikeSeries.fill_null  sv     !!..szzz/FGG  ..y( 			&YYUY+G rI   c                X    | j                   }| j                  |j                               S r;   )r>   ra   r"  r   s     rG   
drop_nullszPandasLikeSeries.drop_nulls  s$    !!''

55rI   c                >    | j                   }|j                  d      S )NF)r"  )r>   nuniquer   s     rG   n_uniquezPandasLikeSeries.n_unique  s    !!{{%{((rI   )fractionwith_replacementseedc               b    | j                   }| j                  |j                  ||||            S )N)nfracreplacerandom_state)r>   ra   sample)rB   rA  r=  r>  r?  r   s         rG   rE  zPandasLikeSeries.sample  s8     !!''JJ3CRVJW
 	
rI   c                T    | j                  | j                  j                               S r;   )ra   r>   absrV   s    rG   rG  zPandasLikeSeries.abs  s"    ''(;(;(?(?(ABBrI   c                   | j                   }|s|j                  d      n|d d d   j                  d      d d d   }| j                  |      S NT)skipna)r>   cumsumra   rB   reverserC   r   s       rG   cum_sumzPandasLikeSeries.cum_sum  `    ++     -tt$++4+82> 	
 ''//rI   )maintain_orderc                   | j                  | j                  j                  | j                  j                         | j                  j                              S Nr<   )ra   r>   re   uniquer<   )rB   rQ  s     rG   rU  zPandasLikeSeries.unique  sP     ''))##**,43F3F3K3K * 
 	
rI   c                T    | j                  | j                  j                               S r;   )ra   r>   diffrV   s    rG   rW  zPandasLikeSeries.diff  s"    ''(;(;(@(@(BCCrI   c                V    | j                  | j                  j                  |            S r;   )ra   r>   shiftrB   rA  s     rG   rY  zPandasLikeSeries.shift  s$    ''(;(;(A(A!(DEErI   c          	     8   | j                    d}|rAt        || j                  j                  | j                  | j
                  | j                        nd }| j                         j                  | j                   ||| j                         j                  ||      i      }| j                  | j                  j                         j                  || j                   d      |   j                  | j                               }|j                         j                         | j                         j                         k7  r[d| j!                  | j                          |j                         z        j#                         j%                          }t'        |      |S )N_tmp)rv   r   )onhowzYreplace_strict did not replace all non-null values.

The following did not get replaced: )r<   r   r>   rv   r?   r@   rA   rS   	DataFrameSeriesra   r   merger   r+  r  r   rU  r   r   )	rB   oldnewreturn_dtypetmp_namerv   r   r   rR   s	            rG   replace_strictzPandasLikeSeries.replace_strict  sn    ii[%  %##))$$%%  	 ))+55		3$335<<S<N
 ))((*U5TYYFU3H>VDII

 >>!T\\^%7%7%9977;{{DLLN?U[UcUcUeCe7f7m7m7o7w7w7y6z|  S/!rI   )
descending
nulls_lastc                   | j                   }|rdnd}| j                  t        |j                  | |      | j                  | j
                  | j                              S )Nlastfirst)	ascendingna_positionr   )r>   ra   r   sort_valuesr<   r?   r@   )rB   rg  rh  r   rm  s        rG   sortzPandasLikeSeries.sort  s^     !! *f''j.kR		#33 $ 5 5	
 	
rI   c                    || j                   k7  r>| j                  }| j                  t        ||| j                  | j
                              S | S r   )r<   r>   ra   r   r?   r@   )rB   r<   r   s      rG   aliaszPandasLikeSeries.alias  sS    499%%C++#'#7#7$($9$9	  rI   c                (    | j                  ||      S )Nrv   r   )to_numpy)rB   rv   r   s      rG   	__array__zPandasLikeSeries.__array__!  s     }}5t}44rI   c                t   |xs | j                   t        j                  u }t        | j                        }| j
                  |j                  k(  rU| j
                  j                  ?| j                  j                  d      j                  j                  d       j                  }n| j                  }|j                         j                         }|rt        |j
                        t        v rn| j                   t        j                   u r| j"                  dk  ri }ndt%        d      i} |j&                  d|xs t        t        |j
                           |d|S |sLt        |j
                        t(        v r1|j'                  |xs t(        t        |j
                           |      S |j'                  ||      S )NUTCr   na_valuer  rs  rU   )r?   r   rM   r   rA   rv   Datetime	time_zonedtconvert_time_zonereplace_time_zoner>   r   r   strPANDAS_TO_NUMPY_DTYPE_MISSINGrK   r@   r#  rt   PANDAS_TO_NUMPY_DTYPE_NO_MISSING)rB   rv   r   dtypesr   has_missingkwargss          rG   rt  zPandasLikeSeries.to_numpy'  sw    Bt++~/B/BB%dmm4::(TZZ-A-A-M))%033EEdKZZA##Affhlln3qww<+HH##~'<'<<AVAV Z B $eEl31:: J<S\J  
 s177|/OO::M?AGGM    zzDz11rI   c                ^   | j                   t        j                  u r| j                  S | j                   t        j                  u r| j                  j                         S | j                   t        j                  u r| j                  j                         S d| j                    }t        |      )NzUnknown implementation: )	r?   r   rK   r>   rM   	to_pandasrL   
_to_pandasrP   rQ   s     rG   r  zPandasLikeSeries.to_pandasE  s    >#8#88&&&!!^%8%88&&0022!!^%9%99&&1133()=)=(>?S!!rI   c                    | j                   j                  d      }t        || j                  | j                  | j
                        }| j                  |      S NFkeepr   )r>   
duplicatedr   r<   r?   r@   ra   rB   r   s     rG   is_duplicatedzPandasLikeSeries.is_duplicatedP  sT    !!,,%,8II// 11	
 '',,rI   c                .    | j                   j                  S r;   )r>   emptyrV   s    rG   is_emptyzPandasLikeSeries.is_emptyZ  s    ""(((rI   c                    t        | j                  j                  d       | j                  | j                  | j
                        }| j                  |      S r  r   r>   r  r<   r?   r@   ra   r  s     rG   	is_uniquezPandasLikeSeries.is_unique]  sR      +++77II// 11	
 '',,rI   c                R    | j                   j                         j                         S r;   )r>   r   r  rV   s    rG   
null_countzPandasLikeSeries.null_countf  s     ""'')--//rI   c                    t        | j                  j                  d       | j                  | j                  | j
                        }| j                  |      S )Nrk  r  r   r  r  s     rG   is_first_distinctz"PandasLikeSeries.is_first_distincti  sR      +++99II// 11	
 '',,rI   c                    t        | j                  j                  d       | j                  | j                  | j
                        }| j                  |      S )Nrj  r  r   r  r  s     rG   is_last_distinctz!PandasLikeSeries.is_last_distinctr  sR      +++88II// 11	
 '',,rI   )rg  c                   t        |t              sdt        |       }t        |      |r| j                  j
                  S | j                  j                  S )Nz/argument 'descending' should be boolean, found )r^   r   rO   	TypeErrorr>   is_monotonic_decreasingis_monotonic_increasing)rB   rg  rR   s      rG   	is_sortedzPandasLikeSeries.is_sorted{  sO    *d+CDDTCUVCC. &&>>>&&>>>rI   )ro  parallelr<   	normalizec               >   ddl m} | j                  dn| j                  }|xs |rdnd}| j                  j	                  dd|      j                         }||g|_        |r|j                  |d      } ||| j                  | j                  | j                  	      S )
z-Parallel is unused, exists for compatibility.r   r    rk   
proportionr  F)r"  ro  r  )rl  rd   )r   r!   r=   r>   value_countsreset_indexcolumnsrn  r?   r@   rA   )	rB   ro  r  r<   r  r!   index_name_value_name_	val_counts	            rG   r  zPandasLikeSeries.value_counts  s     	H!%!3gFy|g''44 5 
 +-	 	 )+6	!--kU-KI"// 11MM	
 	
rI   c                <    | j                   j                  ||      S )N)qinterpolation)r>   quantile)rB   r  r  s      rG   r  zPandasLikeSeries.quantile  s     
 ""++hm+TTrI   c                    t        | |      \  }}t        | |      \  }}|j                  ||      }| j                  |      S r;   )r   wherera   )rB   maskr   r   r   r   s         rG   zip_withzPandasLikeSeries.zip_with  sC    6tTB	T5dEB5iie$'',,rI   c                V    | j                  | j                  j                  |            S r;   )ra   r>   headrZ  s     rG   r  zPandasLikeSeries.head  $    ''(;(;(@(@(CDDrI   c                V    | j                  | j                  j                  |            S r;   )ra   r>   tailrZ  s     rG   r  zPandasLikeSeries.tail  r  rI   c                X    | j                  | j                  j                  |            S )N)decimals)ra   r>   round)rB   r  s     rG   r  zPandasLikeSeries.round  s'    ''(;(;(A(A8(A(TUUrI   r   )	separator
drop_firstc                   ddl m} | j                         }| j                  }| j                  rt        | j                        nd}| | d}|j                         j                         }|j                  |||||d      }	|rbt        |	j                        ^ }
}|g|
}t        t        |	|| j                  | j                        ||i| j                  | j                        }	 ||	| j                  | j                  | j                        S )	Nr   r     nullr+   )prefix
prefix_sepr  dummy_narv   )r  rD   rE   rd   )r   r!   rS   r>   r=   r~  r   r   get_dummiesr   r  r   r   r@   r?   rA   )rB   r  r  r!   plxri   r<   null_col_pl	has_nullsr   colsnull_col_pdoutput_orders                rG   
to_dummieszPandasLikeSeries.to_dummies  s    	H'')$$"&**s4::"yk.KKM%%'	 ! ! 
 !%fnn!5T;'/$/L&L$*?*?AUAU %k2#33 $ 5 5F #// 11MM	
 	
rI   c                X    | j                  | j                  j                  |d |         S r;   )ra   r>   r`   )rB   rA  offsets      rG   gather_everyzPandasLikeSeries.gather_every  s*    ''(;(;(@(@(KLLrI   c                    t        | |      \  }}t        | |      \  }}| j                  t        j                  u rddini }| j	                   | j
                  j                  ||fi |      S )Naxisr   )r   r?   r   rL   ra   r>   clip)rB   r   r   r   r  s        rG   r  zPandasLikeSeries.clip  ss     <D+N;;D+N; $ 4 48L8L L&!RT''$D$$[+HH
 	
rI   c                    | j                   t        j                  u r| j                  j	                         S dd l}|j                  j                  | j                        S rp   )r?   r   rM   r>   r   pyarrowArrayfrom_pandas)rB   pas     rG   r   zPandasLikeSeries.to_arrow  sI    >#6#66&&//11xx##D$7$788rI   c                ~    | j                   }|j                         }|j                  |_        | j                  |      S r;   )r>   moder<   ra   )rB   rC   r   s      rG   r  zPandasLikeSeries.mode  s9    ++##%#((''//rI   c                   | j                   j                          }|s|j                         n!t        |       |j                         z
  |z   dz
  }| j	                  |      S Nrw   )r>   r   rL  r   ra   )rB   rN  not_na_seriesr   s       rG   	cum_countzPandasLikeSeries.cum_count  sc    ,,1133    "T]1133mCaG 	
 ''//rI   c                   | j                   }|s|j                  d      n|d d d   j                  d      d d d   }| j                  |      S rI  )r>   cumminra   rM  s       rG   cum_minzPandasLikeSeries.cum_min  rP  rI   c                   | j                   }|s|j                  d      n|d d d   j                  d      d d d   }| j                  |      S rI  )r>   cummaxra   rM  s       rG   cum_maxzPandasLikeSeries.cum_max  rP  rI   c                   | j                   }|s|j                  d      n|d d d   j                  d      d d d   }| j                  |      S rI  )r>   cumprodra   rM  s       rG   cum_prodzPandasLikeSeries.cum_prod  s`    ++  !!!.tt$,,D,9$B$? 	
 ''//rI   c               |    | j                   j                  |||      j                         }| j                  |      S Nwindowr}   center)r>   rollingr  ra   rB   window_sizer}   r  r   s        rG   rolling_sumzPandasLikeSeries.rolling_sum"  sC     $$,,K - 

#% 	 ''//rI   c               |    | j                   j                  |||      j                         }| j                  |      S r  )r>   r  r   ra   r  s        rG   rolling_meanzPandasLikeSeries.rolling_mean.  sC     $$,,K - 

$& 	 ''//rI   c                   | j                   j                  |||      j                  |      }| j                  |      S Nr  r  )r>   r  r  ra   rB   r  r}   r  r  r   s         rG   rolling_varzPandasLikeSeries.rolling_var:  G     $$,,K - 

#4#. 	 ''//rI   c                   | j                   j                  |||      j                  |      }| j                  |      S r  )r>   r  r  ra   r  s         rG   rolling_stdzPandasLikeSeries.rolling_stdG  r  rI   c              #  T   K   | j                   j                         E d {    y 7 wr;   )r>   __iter__rV   s    rG   r  zPandasLikeSeries.__iter__T  s     &&//111s   (&(c                    |(| j                   j                         j                         S | j                   |k(  j                         S r;   )r>   r   r   )rB   r   s     rG   __contains__zPandasLikeSeries.__contains__W  sI     } $$&**,	
 %%.335	
rI   c                r    | j                   }| j                  |t        d      kD  |t        d      k  z        S )Nz-infinf)r>   ra   r#  rB   r   s     rG   	is_finitezPandasLikeSeries.is_finite^  s5    ''U6]):q5<?O(PQQrI   c          	        |dk(  rdn|}| j                   }t        | j                        }| j                  t        j
                  u r| j                  dk  r| j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  hv r|j!                         x}j#                         rm |j%                         j&                  di |j(                   d|ij+                  |j(                   d      j-                  |d| d      |j(                     }n|j-                  |d| d      }| j/                  |      S )	Nordinalrk  )r!  _is_nullr  F)method	na_optionrl  pctrU   )r>   r   rA   r?   r   rK   r@   rv   r$   r&   r(   r*   r,   r.   r0   r2   r   r   r   assignr<   groupbyrankra   )rB   r   rg  	pd_methodrC   r  	null_maskranked_seriess           rG   r  zPandasLikeSeries.rankb  sk     &2G	++%dmm4  N$9$99%%,

	
 ,0022779&&(H+001:IFHM../x89$$",n	  
  $$&  *..  (.	 / M ''66rI   c                    t        |       S r;   )PandasLikeSeriesStringNamespacerV   s    rG   r~  zPandasLikeSeries.str  s    .t44rI   c                    t        |       S r;   )!PandasLikeSeriesDateTimeNamespacerV   s    rG   r{  zPandasLikeSeries.dt  s    066rI   c                    t        |       S r;   )PandasLikeSeriesCatNamespacerV   s    rG   catzPandasLikeSeries.cat  s    +D11rI   c                    t        |       S r;   )PandasLikeSeriesListNamespacerV   s    rG   r   zPandasLikeSeries.list  s    ,T22rI   )
rC   r   rD   r   rE   tuple[int, ...]rF   r#   returnNone)rB   r   r  r   )r  r   )rZ   r_   r  r   )rZ   zslice | Sequence[int]r  r   )rZ   zint | slice | Sequence[int]r  z
Any | Self)rF   r#   r  r   )ri   r   r  r   )rl   z
type[Self]rm   zIterable[Any]r<   r~  rk   r   rD   r   rE   r  rF   r#   r  r   )r  r_   )r  r~  )r  z
tuple[int])rB   r   r  r"   )rx   float | Nonery   r  rz   r  r{   r  r|   r   r}   r_   r~   r   r  r9   )r   zint | Sequence[int]r   r   r  r   )rv   r   r  r   r;   )rB   r   rk   
int | Noner  r   )r  r!   r  r   )r   )r   r   r   r   r   r~  r  r9   )r   r   r  r9   r  r9   )r   objectr  r9   )rB   r9   r  r9   )rB   r   r  r_   r  r#  )rB   r   r  r  )NNN)r/  z
Any | Noner5  z%Literal['forward', 'backward'] | Noner1  r  r  r   )rB   r   rA  r  r=  r  r>  r   r?  r  r  r   )rB   r   rN  r   r  r   )rQ  r   r  r9   )rA  r_   r  r9   )rb  Sequence[Any]rc  r  rd  zDType | Noner  r9   )rg  r   rh  r   r  r9   )r<   r~  r  r   )NN)rv   r   r   zbool | Noner  r   )rB   r   r  r   )rB   r   r  r   )rB   r   r  r_   )rB   r   rg  r   r  r   )rB   r   ro  r   r  r   r<   
str | Noner  r   r  r!   )rB   r   r  r#  r  z;Literal['nearest', 'higher', 'lower', 'midpoint', 'linear']r  r   )rB   r   r  r   r   r   r  r9   )rB   r   rA  r_   r  r   )rB   r   r  r_   r  r   )rB   r   r  r~  r  r   r  r!   )r   )rB   r   rA  r_   r  r_   r  r   )rB   r   r   Self | Any | Noner   r  r  r   )rB   r   r  r   )
rB   r   r  r_   r}   r  r  r   r  r   )rB   r   r  r_   r}   r  r  r   r  r_   r  r   )rB   r   r  zIterator[Any])rB   r   r   r   r  r   )rB   r   r   z4Literal['average', 'min', 'max', 'dense', 'ordinal']rg  r   r  r   )r  r
  )r  r  )r  r  )r  r  )u__name__
__module____qualname__rH   rS   rW   r
   r[   rf   ra   classmethodrn   rr   propertyr<   rq   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r   r   r
  r  r  r  r   r  r  r  r(  r   r+  r-  r7  r9  r<  rE  rG  rO  rU  rW  rY  rf  ro  rq  ru  rt  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r~  r{  r  r   rU   rI   rG   r9   r9   T   sb   NN '	N
 )N N 
N	" / /B BG


 


 
 	
 '
 )
 
 

 
,   ) ) 
 
 !!"&""0 0 	0
  0 0 0 0 0 
0>+ ;; 
;
/
- AG

-0
:=
	
2-
0

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
.""?(
4) !:> 	 8 	
 
$6) 
 "&!&


 	

 
 
 

C0 05 
DF   '4 GS 	 F %*e
!
7;
	
52<"-)-0-- 5: ? 

 
 	

 
 
 

@UUU SU 
	U-EEV ),&
&
"%&
9=&
	&
PM

!2
AR
	
900000
0
0
0  	
0
 
0 

0
0
0
0  	
0
 
0 

0000  	0
 0 0 
0000  	0
 0 0 
02
R0707D07 	07
 
07d 5 5 7 7 2 2 3 3rI   r9   c                      e Zd ZddZddZy)r  c                    || _         y r;   _compliant_seriesrh   s     rG   rH   z%PandasLikeSeriesCatNamespace.__init__  
    !'rI   c                    | j                   j                  }| j                   j                  |j                  |j                  j
                  |j                              S rS  )r%  r>   ra   re   r  
categoriesr<   r  s     rG   get_categoriesz+PandasLikeSeriesCatNamespace.get_categories  sJ    ""11%%99KK((qvvK6
 	
rI   Nri   r9   r  r  r  )r  r  r  rH   r)  rU   rI   rG   r  r    s    (
rI   r  c                      e Zd ZddZddZddd	 	 	 	 	 	 	 	 	 ddZdd	 	 	 	 	 	 	 ddZdd	Zdd
ZddZ	ddddZ
dddZddZddZddZy)r
  c                    || _         y r;   r$  rh   s     rG   rH   z(PandasLikeSeriesStringNamespace.__init__  r&  rI   c                    | j                   j                  | j                   j                  j                  j	                               S r;   )r%  ra   r>   r~  r   rV   s    rG   	len_charsz)PandasLikeSeriesStringNamespace.len_chars  s9    %%99""115599;
 	
rI   Frw   literalrA  c                   | j                   j                  | j                   j                  j                  j	                  ||||             S )N)patreplrA  regex)r%  ra   r>   r~  rC  )rB   patternr/  r0  rA  s        rG   rC  z'PandasLikeSeriesStringNamespace.replace  sM     %%99""1155==%1K > 
 	
rI   )r0  c               ,    | j                  |||d      S )NrK  r/  )rC  )rB   r5  r/  r0  s       rG   replace_allz+PandasLikeSeriesStringNamespace.replace_all  s     ||GUGr|BBrI   c                    | j                   j                  | j                   j                  j                  j	                  |            S r;   )r%  ra   r>   r~  strip)rB   
characterss     rG   strip_charsz+PandasLikeSeriesStringNamespace.strip_chars  s;    %%99""1155;;JG
 	
rI   c                    | j                   j                  | j                   j                  j                  j	                  |            S r;   )r%  ra   r>   r~  
startswith)rB   r  s     rG   starts_withz+PandasLikeSeriesStringNamespace.starts_with  s;    %%99""1155@@H
 	
rI   c                    | j                   j                  | j                   j                  j                  j	                  |            S r;   )r%  ra   r>   r~  endswith)rB   suffixs     rG   	ends_withz)PandasLikeSeriesStringNamespace.ends_with  s;    %%99""1155>>vF
 	
rI   c                   | j                   j                  | j                   j                  j                  j	                  ||             S )N)r2  r4  )r%  ra   r>   r~  contains)rB   r5  r0  s      rG   rD  z(PandasLikeSeriesStringNamespace.contains  sG    %%99""1155>>w; ? 
 	
rI   Nc                    |r||z   nd }| j                   j                  | j                   j                  j                  j	                  ||            S )N)startstop)r%  ra   r>   r~  slice)rB   r  lengthrG  s       rG   rH  z%PandasLikeSeriesStringNamespace.slice  sM    "(vd%%99""1155;;&t;T
 	
rI   c                    | j                   j                   t        | j                   j                        | j                   j                  |            S )N)format)r%  ra   r   r?   r>   rB   rK  s     rG   r   z+PandasLikeSeriesStringNamespace.to_datetime  sG    %%99?K..>>?&&55f
 	
rI   c                    | j                   j                  | j                   j                  j                  j	                               S r;   )r%  ra   r>   r~  upperrV   s    rG   to_uppercasez,PandasLikeSeriesStringNamespace.to_uppercase  9    %%99""1155;;=
 	
rI   c                    | j                   j                  | j                   j                  j                  j	                               S r;   )r%  ra   r>   r~  lowerrV   s    rG   to_lowercasez,PandasLikeSeriesStringNamespace.to_lowercase  rP  rI   r*  r  )
r5  r~  r/  r~  r0  r   rA  r_   r  r9   )r5  r~  r/  r~  r0  r   r  r9   )r:  r  r  r9   )r  r~  r  r9   )rA  r~  r  r9   )r5  r~  r0  r   r  r9   r;   )r  r_   rI  r  r  r9   )rB   r   rK  r  r  r9   )r  r  r  rH   r.  rC  r7  r;  r>  rB  rD  rH  r   rO  rS  rU   rI   rG   r
  r
    s    (
 <A1

#&
48
EH
	
 <ACC#&C48C	C






 9> 





rI   r
  c                      e Zd ZddZddZddZddZddZddZddZ	ddZ
dd	Zdd
ZddZddZddZddZddZddZddZddZddZddZddZddZdd dZy)!r  c                    || _         y r;   r$  rh   s     rG   rH   z*PandasLikeSeriesDateTimeNamespace.__init__  r&  rI   c                    | j                   j                  | j                   j                  j                  j                        }t        |j                        j                         dk(  rd}t        |      |S )Nr  zAccessing `date` on the default pandas backend will return a Series of type `object`.
This differs from polars API and will prevent `.dt` chaining. Please switch to the `pyarrow` backend:
df.convert_dtypes(dtype_backend="pyarrow"))	r%  ra   r>   r{  dater~  rv   rR  r   )rB   r   rR   s      rG   rW  z&PandasLikeSeriesDateTimeNamespace.date  sk    '';;""114499
 v||""$0?  &c**rI   c                    | j                   j                  | j                   j                  j                  j                        S r;   )r%  ra   r>   r{  yearrV   s    rG   rY  z&PandasLikeSeriesDateTimeNamespace.year  6    %%99""114499
 	
rI   c                    | j                   j                  | j                   j                  j                  j                        S r;   )r%  ra   r>   r{  monthrV   s    rG   r\  z'PandasLikeSeriesDateTimeNamespace.month  s6    %%99""1144::
 	
rI   c                    | j                   j                  | j                   j                  j                  j                        S r;   )r%  ra   r>   r{  dayrV   s    rG   r^  z%PandasLikeSeriesDateTimeNamespace.day  s6    %%99""114488
 	
rI   c                    | j                   j                  | j                   j                  j                  j                        S r;   )r%  ra   r>   r{  hourrV   s    rG   r`  z&PandasLikeSeriesDateTimeNamespace.hour  rZ  rI   c                    | j                   j                  | j                   j                  j                  j                        S r;   )r%  ra   r>   r{  minuterV   s    rG   rb  z(PandasLikeSeriesDateTimeNamespace.minute  6    %%99""1144;;
 	
rI   c                    | j                   j                  | j                   j                  j                  j                        S r;   )r%  ra   r>   r{  secondrV   s    rG   re  z(PandasLikeSeriesDateTimeNamespace.second!  rc  rI   c                (    | j                         dz  S N  )microsecondrV   s    rG   millisecondz-PandasLikeSeriesDateTimeNamespace.millisecond&  s    !T))rI   c                   | j                   j                  dk  rdt        | j                   j                  j                        v rdd lm} | j                   j                  }|j                  j                         }|j                  |j                  |j                  |      d      |j                  |            }|j                  |j                  j                  |      |j                        }| j                   j                  |      S | j                   j                  | j                   j                  j                   j                        S )N)r!  r   r   r  r   rh  rT  )r%  r@   r~  r>   rv   pyarrow.computecomputearray__arrow_array__addmultiplyrj  ri  re   r<   ra   r{  )rB   pcrC   arr
result_arrr   s         rG   ri  z-PandasLikeSeriesDateTimeNamespace.microsecond)  s   !!22Y>9PS""1177Q
 D
 ) 22AAM%%557CBNN3/6s8KJ #,,##--j9@R@R - F ))==fEE%%99""1144@@
 	
rI   c                ~    | j                         dz  | j                  j                  j                  j                  z   S rg  )ri  r%  r>   r{  
nanosecondrV   s    rG   rv  z,PandasLikeSeriesDateTimeNamespace.nanosecond>  s9    &$$3366AAB	
rI   c                   | j                   j                  }|j                  j                  }|j	                         j                  d      |j	                         dz
  j                  d      z
  j                  d      dz   }dt        |j                        v rdnd}| j                   j                  | j                   j                  j                  |||j                              S )	Nzdatetime64[D]i  zdatetime64[Y]r'   rw   r  Int64[pyarrow])rv   r<   )r%  r>   r{  rY  rt  r   r~  rv   ra   re   r<   )rB   r   
year_startr   rv   s        rG   ordinal_dayz-PandasLikeSeriesDateTimeNamespace.ordinal_dayD  s    $$33VV[[
LLN!!/2""$t+33ODE
&/A %.SYY$? W%%99""11;;e*// < 
 	
rI   c                    | j                   j                  | j                   j                  j                  j                        dz   S r  )r%  ra   r>   r{  weekdayrV   s    rG   r|  z)PandasLikeSeriesDateTimeNamespace.weekdayR  s@    ""66&&5588@@ 	
rI   c                   t        | j                  j                  j                  d      r.| j                  j                  j                  j	                         S | j                  j                  j                  j
                  dz  | j                  j                  j                  j                  z   | j                  j                  j                  j                  dz  z   | j                  j                  j                  j                  dz  z   S )Ntotal_secondsiQ     .A    eA)	hasattrr%  r>   r{  r~  dayssecondsmicrosecondsnanosecondsrV   s    rG   _get_total_secondsz4PandasLikeSeriesDateTimeNamespace._get_total_secondsZ  s    4))88;;_M))88;;IIKK &&5588==E((77::BBC))88;;HH3NP ))88;;GG#MOrI   c                d   | j                         }d|dkD  j                  t        |j                              z  dz
  }|j	                         dz  }|j                         j                          r$|j                  t        |j                              }| j                  j                  ||z        S )Nr   r   rw   <   	r  r   r   rv   rG  r   r   r%  ra   rB   r   s_signs_abss       rG   total_minutesz/PandasLikeSeriesDateTimeNamespace.total_minutese  s    ##%Q/899A= 	 2FFHLLN?LL!1!''!:;E%%99%&.IIrI   c                d   | j                         }d|dkD  j                  t        |j                              z  dz
  }|j	                         dz  }|j                         j                          r$|j                  t        |j                              }| j                  j                  ||z        S )Nr   r   rw   r  r  s       rG   r~  z/PandasLikeSeriesDateTimeNamespace.total_secondso  s    ##%Q/899A= 	 1FFHLLN?LL!1!''!:;E%%99%&.IIrI   c                j   | j                         dz  }d|dkD  j                  t        |j                              z  dz
  }|j	                         dz  }|j                         j                          r$|j                  t        |j                              }| j                  j                  ||z        S )Ng     @@r   r   rw   r  r  s       rG   total_millisecondsz4PandasLikeSeriesDateTimeNamespace.total_millisecondsy      ##%+Q/899A= 	 1FFHLLN?LL!1!''!:;E%%99%&.IIrI   c                j   | j                         dz  }d|dkD  j                  t        |j                              z  dz
  }|j	                         dz  }|j                         j                          r$|j                  t        |j                              }| j                  j                  ||z        S )Nr  r   r   rw   r  r  s       rG   total_microsecondsz4PandasLikeSeriesDateTimeNamespace.total_microseconds  r  rI   c                j   | j                         dz  }d|dkD  j                  t        |j                              z  dz
  }|j	                         dz  }|j                         j                          r$|j                  t        |j                              }| j                  j                  ||z        S )Nr  r   r   rw   r  r  s       rG   total_nanosecondsz3PandasLikeSeriesDateTimeNamespace.total_nanoseconds  r  rI   c                R   dt        | j                  j                  j                        vr|j	                  dd      }n"|j	                  dd      j	                  dd      }| j                  j                  | j                  j                  j                  j                  |            S )Nr  z%S%.fz%S.%fz%S)r~  r%  r>   rv   rC  ra   r{  strftimerL  s     rG   	to_stringz+PandasLikeSeriesDateTimeNamespace.to_string  s     C 6 6 E E K KLL^^GW5F^^GT2::7DIF%%99""1144==fE
 	
rI   c                ,   |I| j                   j                  j                  j                  d       j                  j                  |      }n/| j                   j                  j                  j                  d       }| j                   j	                  |      S r;   )r%  r>   r{  tz_localizera   rB   rz  r   s      rG   r}  z3PandasLikeSeriesDateTimeNamespace.replace_time_zone  sy     ++::==IIbY'  ++::==II$OF%%99&AArI   c                h   | j                   j                  j                  I| j                   j                  j                  j                  d      j                  j                  |      }n/| j                   j                  j                  j                  |      }| j                   j                  |      S )Nrw  )r%  rv   rz  r>   r{  r  
tz_convertra   r  s      rG   r|  z3PandasLikeSeriesDateTimeNamespace.convert_time_zone  s    !!''119++::==IIbI&  ++::==HHSF%%99&AArI   c                $   | j                   j                  }| j                   j                  }dt        | j                   j                  j                        v }|j	                         }t        | j                   j                        }||j                  k(  r|j                  d      }t        ||      }n||j                  k(  r|j                  }	| j                   j                  t        j                  u r>| j                   j                  dk  r%|r|j!                  d      n|j!                  d      }n$|r|j                  d      n|j                  d      }t#        ||	|      }nd}
t%        |
      d ||<   | j                   j'                  |      S )Nr  zInt32[pyarrow])r   rx  r%   z/Input should be either of Date or Datetime type)r%  r>   rv   r~  r   r   rA   Dater   r   ry  	time_unitr?   r   rK   r@   viewr   r  ra   )rB   r  r   rv   is_pyarrow_dtyper   r  s_castr   original_time_unitrR   s              rG   	timestampz+PandasLikeSeriesDateTimeNamespace.timestamp  sQ   ""11&&,,$D,B,B,Q,Q,W,W(XX&&(%d&<&<&E&EFFKKXX./F-fi@Ffoo%!&&&66.:O:OO**;;dB5E 01166RY? 3CAHH-.QXHY  2&:LiXFCCC. w%%99&AArI   Nr*  r  r  )rK  r~  r  r9   )rz  r  r  r9   )rz  r~  r  r9   )us)r  zLiteral['ns', 'us', 'ms']r  r9   )r  r  r  rH   rW  rY  r\  r^  r`  rb  re  rj  ri  rv  rz  r|  r  r  r~  r  r  r  r  r}  r|  r  rU   rI   rG   r  r    s}    (











*
*


	JJJJJ

BBBrI   r  c                      e Zd ZddZddZy)r  c                    || _         y r;   r$  rh   s     rG   rH   z&PandasLikeSeriesListNamespace.__init__  r&  rI   c                <   ddl m} | j                  j                  }|j                  j                         }| j                  j                  t        j                  u r| j                  j                  dk  rt        t        ||j                  | j                  j                  | j                  j                        |j                  | j                  j                  | j                  j                        }t         || j                  j                        j!                         |j"                  | j                  j                  | j                  j                  | j                  j                        }| j                  j%                  |j'                  |            S )Nr   r   )r!  r   r   )rk   rD   rE   )rv   starting_dtyperD   rE   rF   )narwhals.utilsr   r%  r>   r   r   r?   r   rK   r@   r   r   r<   rk   r   rA   r.   rv   ra   r   )rB   r   rC   native_resultrv   s        rG   r   z!PandasLikeSeriesListNamespace.len  sB   7..==%**..0 ""22n6K6KK&&77&@%!!&&#'#9#9#I#I$($:$:$K$K	 $))#55EE $ 6 6 G G
M )&t'='='F'FGNNP(..11AA 22CC**33
 %%99-:N:Nu:UVVrI   Nr*  )rB   r   r  r9   )r  r  r  rH   r   rU   rI   rG   r  r    s    (WrI   r  N)0
__future__r   typingr   r   r   r   r   r	   r
   narwhals._pandas_like.utilsr   r   r   r   r   r   r   r   r   r   r   narwhals.dependenciesr   narwhals.exceptionsr   narwhals.typingr   r  r   r   r   typesr   typing_extensionsr   r   r!   narwhals.dtypesr"   r#   r  r  r9   r  r
  r  r  rU   rI   rG   <module>r     sc   "         J @ D 8 @ C @ . > 1 3 1 5 + ) / 3 &C%&$W$g$ W$ g	$
 W$ g$ F$ V$ h$ x$ h$ x$ h$ x$ W$  g!$" y#$$ "!)$  ,!Y!i! Y! i	!
 Y! i! I! Y! i! y! i! y! i! y! Y!  i!!" y#!$ "!)! 0N3 N3b"
 
B
 B
JZB ZBz W  WrI   