
    gE                    X   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r4d dlmZ d dlmZ d dl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  ed      Z G d d      Z G d d      Z G d d      Z  G d d      Z! G d d      Z"y)    )annotations)TYPE_CHECKING)Any)Sequence)overload)extract_args_kwargs)extract_native)narwhals_to_native_dtype)native_to_narwhals_dtype)Implementation)validate_backend_version)
ModuleType)TypeVarN)SelfPolarsDataFrame)DType)VersionTc                     e Zd Z	 	 	 	 	 	 	 	 	 	 d7dZd8dZd9dZd:dZd;dZd<dZe	d<d       Z
e	d=d       Z
e	d>d	       Z
	 	 	 	 	 	 d?d
Z
d@dZdAdZedBd       Zed8d       ZedCd       Ze	dDd       Ze	dEd       ZdFdZdGdZ	 	 	 	 	 	 	 	 	 	 dHdZdIdZdJdZdJdZdKdZdKdZdKdZdKdZdLdZdLdZdMdZdMdZdMd ZdMd!Z dMd"Z!dMd#Z"dMd$Z#dMd%Z$d9d&Z%d9d'Z&dNd(Z'dOd)Z(	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dPd*Z)	 	 	 	 	 	 	 	 	 	 	 	 dQd+Z*	 	 	 	 	 	 	 	 	 	 	 	 dQd,Z+dRd-Z,dSd.Z-	 	 	 	 	 	 	 	 	 	 	 	 dTd/Z.dUd0Z/dVd1Z0edWd2       Z1edXd3       Z2edYd4       Z3edZd5       Z4y6)[PolarsSeriesc                   || _         || _        t        j                  | _        || _        t        | j                  | j                         y N)_native_series_backend_versionr   POLARS_implementation_versionr   )selfseriesbackend_versionversions       L/var/www/openai/venv/lib/python3.12/site-packages/narwhals/_polars/series.py__init__zPolarsSeries.__init__   s?     *0 /-44 !5!5t7L7LM    c                     y)Nr    r   s    r#   __repr__zPolarsSeries.__repr__,   s    r%   c                    | S r   r'   r(   s    r#   __narwhals_series__z PolarsSeries.__narwhals_series__/   s    r%   c                    | j                   t        j                  u r| j                   j                         S dt	        | j                          }t        |      )NzExpected polars, got: )r   r   r   to_native_namespacetypeAssertionError)r   msgs     r#   __native_namespace__z!PolarsSeries.__native_namespace__2   sN    >#8#88'';;==&tD,@,@'A&BCS!!r%   c                R    | j                  | j                  | j                  |      S Nr!   r"   )	__class__r   r   )r   r"   s     r#   _change_versionzPolarsSeries._change_version9   s,    ~~1F1FPW  
 	
r%   c                R    | j                  || j                  | j                        S r3   )r5   r   r   r   r    s     r#   _from_native_seriesz PolarsSeries._from_native_series>   s)    ~~D$9$94==  
 	
r%   c                     y r   r'   r8   s     r#   _from_native_objectz PolarsSeries._from_native_objectC   s    DGr%   c                     y r   r'   r8   s     r#   r;   z PolarsSeries._from_native_objectF   s    RUr%   c                     y r   r'   r8   s     r#   r;   z PolarsSeries._from_native_objectI   s    9<r%   c                    dd l }t        ||j                        r| j                  |      S t        ||j                        r%ddlm}  ||| j                  | j                        S |S )Nr   r   r4   )	polars
isinstanceSeriesr9   	DataFramenarwhals._polars.dataframer   r   r   )r   r    plr   s       r#   r;   z PolarsSeries._from_native_objectL   s\     	fbii(++F33fbll+B"(=(=t}}  r%   c                .     dk(  rt         d fd}|S )Nas_pyc                 x    t        | |      \  } }j                   t        j                        | i |      S r   )r   r;   getattrr   argskwargsattrr   s     r#   funcz&PolarsSeries.__getattr__.<locals>.func`   sB    .tV<LD&++2++T2DCFC r%   rJ   r   rK   r   returnr   )AttributeErrorr   rL   rM   s   `` r#   __getattr__zPolarsSeries.__getattr__\   s    7?  	 r%   c                ,    t        | j                        S r   )lenr   r(   s    r#   __len__zPolarsSeries.__len__h   s    4&&''r%   c                    t        |       fS r   )rT   r(   s    r#   shapezPolarsSeries.shapek   s    D	|r%   c                .    | j                   j                  S r   )r   namer(   s    r#   rY   zPolarsSeries.nameo   s    ""'''r%   c                l    t        | j                  j                  | j                  | j                        S r   )r   r   dtyper   r   r(   s    r#   r[   zPolarsSeries.dtypes   s,    '%%t}}d6K6K
 	
r%   c                     y r   r'   r   items     r#   __getitem__zPolarsSeries.__getitem__y   s    36r%   c                     y r   r'   r]   s     r#   r_   zPolarsSeries.__getitem__|   s    FIr%   c                V    | j                  | j                  j                  |            S r   )r;   r   r_   r]   s     r#   r_   zPolarsSeries.__getitem__   s$    ''(;(;(G(G(MNNr%   c                    | j                   }t        || j                        }| j                  |j	                  |            S r   )r   r
   r   r9   cast)r   r[   serdtype_pls       r#   rc   zPolarsSeries.cast   s7    !!+E4==A''(:;;r%   c                   | j                   }|rt        || j                        nd }| j                  dk  rd| j                   }t	        |      | j                  |j                  |||            S )N   zA`replace_strict` is only available in Polars>=1.0, found version )return_dtype)r   r
   r   r   NotImplementedErrorr9   replace_strict)r   oldnewri   rd   r[   r0   s          r#   rk   zPolarsSeries.replace_strict   s     !!  %\4==A 	
   4'UVZVkVkUlmC%c**''(:(:3RW(:(XYYr%   c                    | j                   dk  r| j                  j                  |      S | j                  j                  ||      S )N)r         )r[   )r[   copy)r   r   	__array__)r   r[   rq   s      r#   rr   zPolarsSeries.__array__   sF      ;.&&00u0=="",,5t,DDr%   c                h    | j                  | j                  j                  t        |                  S r   )r9   r   __eq__r	   r   others     r#   rt   zPolarsSeries.__eq__   *    ''(;(;(B(B>RWCX(YZZr%   c                h    | j                  | j                  j                  t        |                  S r   )r9   r   __ne__r	   ru   s     r#   ry   zPolarsSeries.__ne__   rw   r%   c                h    | j                  | j                  j                  t        |                  S r   )r9   r   __ge__r	   ru   s     r#   r{   zPolarsSeries.__ge__   rw   r%   c                h    | j                  | j                  j                  t        |                  S r   )r9   r   __gt__r	   ru   s     r#   r}   zPolarsSeries.__gt__   rw   r%   c                h    | j                  | j                  j                  t        |                  S r   )r9   r   __le__r	   ru   s     r#   r   zPolarsSeries.__le__   rw   r%   c                h    | j                  | j                  j                  t        |                  S r   )r9   r   __lt__r	   ru   s     r#   r   zPolarsSeries.__lt__   rw   r%   c                h    | j                  | j                  j                  t        |                  S r   )r9   r   __and__r	   ru   s     r#   r   zPolarsSeries.__and__   .    ''''u(=>
 	
r%   c                h    | j                  | j                  j                  t        |                  S r   )r9   r   __or__r	   ru   s     r#   r   zPolarsSeries.__or__   rw   r%   c                h    | j                  | j                  j                  t        |                  S r   )r9   r   __add__r	   ru   s     r#   r   zPolarsSeries.__add__   r   r%   c                h    | j                  | j                  j                  t        |                  S r   )r9   r   __radd__r	   ru   s     r#   r   zPolarsSeries.__radd__   .    ''(()>?
 	
r%   c                h    | j                  | j                  j                  t        |                  S r   )r9   r   __sub__r	   ru   s     r#   r   zPolarsSeries.__sub__   r   r%   c                h    | j                  | j                  j                  t        |                  S r   )r9   r   __rsub__r	   ru   s     r#   r   zPolarsSeries.__rsub__   r   r%   c                h    | j                  | j                  j                  t        |                  S r   )r9   r   __mul__r	   ru   s     r#   r   zPolarsSeries.__mul__   r   r%   c                h    | j                  | j                  j                  t        |                  S r   )r9   r   __rmul__r	   ru   s     r#   r   zPolarsSeries.__rmul__   r   r%   c                h    | j                  | j                  j                  t        |                  S r   )r9   r   __pow__r	   ru   s     r#   r   zPolarsSeries.__pow__   r   r%   c                    | j                   j                  t        |            }| j                  dk  r|j	                  | j
                        }| j                  |      S )N)rh      rh   )r   __rpow__r	   r   aliasrY   r9   )r   rv   results      r#   r   zPolarsSeries.__rpow__   sN    $$--nU.CD  :-\\$)),F''//r%   c                T    | j                  | j                  j                               S r   )r9   r   
__invert__r(   s    r#   r   zPolarsSeries.__invert__   s"    ''(;(;(F(F(HIIr%   c                P   dd l }| j                  }| j                  dk  ri| j                   |j                   |j
                  |j                               j                  |j                                     |j                           S | j                  |j                               S )Nr   )rh      )
r?   r   r   r9   selectwhenis_not_nullthenis_nanrY   )r   rD   natives      r#   r   zPolarsSeries.is_nan   s    $$  7*++		'"''&"4"4"67<<V]]_MNKK 
 ''88r%   c                    ddl m} | j                  j                         s
d} ||      | j                  j                         S )Nr   InvalidOperationErrorz<`median` operation not supported for non-numeric input type.)narwhals.exceptionsr   r[   
is_numericr   median)r   r   r0   s      r#   r   zPolarsSeries.median   s:    =zz$$&PC',,""))++r%   c                  dd l }ddlm} | j                  dk  r~| j                  j                         j                         }| j                  j                  |      }|j                  }|r|j                  t        |            }|j                  |      }n| j                  j                  ||      }|j                   |j                         j                  |j                              } ||| j                  | j                         S )Nr   r   )r   ro      )	separator)r   
drop_firstr4   )r?   rC   r   r   r   is_nullany
to_dummiescolumnspopintr   with_columnsallrc   Int8r   )	r   r   r   rD   r   	has_nullsr   output_columns_s	            r#   r   zPolarsSeries.to_dummies   s    >  ;.++33599;I((33i3HF#^^N"&&s9~6]]>2F((33#
 4 F $$VRVVX]]277%;<D$9$94==
 	
r%   c          	     h   | j                   }|j                  |||||||      }	| j                  dk  rodd l}
| j	                   |
j
                   |
j                  |j                                j                  |	      j                  d             |j                           S | j	                  |	      S )N)comspan	half_lifealphaadjustmin_periodsignore_nullsrg   r   )r   ewm_meanr   r?   r9   r   r   r   r   	otherwiserY   )r   r   r   r   r   r   r   r   native_seriesnative_resultrD   s              r#   r   zPolarsSeries.ewm_mean  s     ++%..#% / 
   4'++		BGG]22445::=ISSTXY$$&  ''66r%   c                   | j                   dk  rd}t        |      | j                  | j                  j	                  ||||            S )Nrg   z7`rolling_var` not implemented for polars older than 1.0window_sizer   centerddof)r   rj   r9   r   rolling_varr   r   r   r   r   r0   s         r#   r   zPolarsSeries.rolling_var.  Z       4'KC%c**''++''	 , 
 	
r%   c                   | j                   dk  rd}t        |      | j                  | j                  j	                  ||||            S )Nrg   z7`rolling_std` not implemented for polars older than 1.0r   )r   rj   r9   r   rolling_stdr   s         r#   r   zPolarsSeries.rolling_stdC  r   r%   c               H   | j                   dk  rf| j                  j                  |      }|redd l}|j	                         } |j
                  |j                  |       |j                  |      g      }n| j                  j                  ||      }| j                  |      S )N)r   ro      )
descendingr   )r   
nulls_last)r   r   sortr?   r   concatfilterr9   )r   r   r   r   rD   r   s         r#   r   zPolarsSeries.sortX  s      :-((---DF# ..*"FMM7($;V]]7=S#TU((--%* . F ''//r%   c                    t        |      }| j                  j                         }|j                  ||       | j	                  |      S r   )r	   r   clonescatterr9   )r   indicesvaluesss       r#   r   zPolarsSeries.scatterh  s?    '%%'			'6"''**r%   c               
   ddl m} | j                  dk  rdd l}|xs |rdnd}| j                  j                  ||      } |j                  d	i | j                  j                   |j                  | j                  j                        ||r% |j                  d       |j                  d      z  n |j                  d      i}n| j                  j                  ||||      } ||| j                  | j                        S )
Nr   r   )rh   r   r   
proportioncount)r   parallel)r   r   rY   	normalizer4   r'   )rC   r   r   r?   r   value_countsr   rY   colsumr   )	r   r   r   rY   r   r   rD   value_name_r   s	            r#   r   zPolarsSeries.value_countsn  s     	?  9,J9<'K((554(5SF"V]] ((--t7J7J7O7O0P  "(6266'?!B	F ((55H49 6 F D$9$94==
 	
r%   c                   | j                   dk  r.| j                  j                          }|j                  |      }n| j                  j	                  |      }| j                  |      S )N)r   ro      )reverse)r   r   r   cum_sum	cum_countr9   )r   r   not_null_seriesr   s       r#   r   zPolarsSeries.cum_count  sd      :-#22::<<O$,,W,=F((2272CF''//r%   c                    ddl m} 	 | j                  j                  |      S # |$ r0}ddlm} dt        |       d| j                   d} ||      |d }~ww xY w)Nr   r   z Unable to compare other of type z with series of type .)polars.exceptionsr   r   __contains__r   r.   r[   )r   rv   PlInvalidOperationErrorexcr   r0   s         r#   r   zPolarsSeries.__contains__  sc    V	6&&33E::& 	6A4T%[MAVW[WaWaVbbcdC',#5		6s   # A+AAc                    t        |       S r   )PolarsSeriesDateTimeNamespacer(   s    r#   dtzPolarsSeries.dt  s    ,T22r%   c                    t        |       S r   )PolarsSeriesStringNamespacer(   s    r#   strzPolarsSeries.str  s    *400r%   c                    t        |       S r   )PolarsSeriesCatNamespacer(   s    r#   catzPolarsSeries.cat  s    '--r%   c                    t        |       S r   )PolarsSeriesListNamespacer(   s    r#   listzPolarsSeries.list  s    (..r%   N)
r   r   r    	pl.Seriesr!   ztuple[int, ...]r"   r   rO   None)r   r   rO   r   )r   r   rO   r   )r   r   rO   r   )r   r   r"   r   rO   r   )r   r   r    r   rO   r   )r   r   r    zpl.DataFramerO   r   )r   r   r    r   rO   r   )r   r   r    zpl.Series | pl.DataFrame | TrO   zSelf | PolarsDataFrame | Tr   r   rL   r   rO   r   )r   r   rO   r   )r   r   rO   z
tuple[int])r   r   rO   r   )r   r   r^   r   rO   r   )r   r   r^   zslice | Sequence[int]rO   r   )r   r   r^   zint | slice | Sequence[int]rO   z
Any | Self)r   r   r[   r   rO   r   )
r   r   rl   Sequence[Any]rm   r  ri   zDType | NonerO   r   )r   r   r[   r   rq   zbool | NonerO   z
np.ndarray)r   r   rv   objectrO   r   )r   r   rv   r   rO   r   )r   r   rv   zPolarsSeries | bool | AnyrO   r   )r   r   rv   zPolarsSeries | AnyrO   r   )r   r   rO   r   )r   r   r   r   r   boolrO   r   )r   r   r   float | Noner   r  r   r  r   r  r   r  r   r   r   r  rO   r   )r   r   r   r   r   z
int | Noner   r  r   r   rO   r   )r   r   r   r  r   r  rO   r   )r   r   r   zint | Sequence[int]r   r   rO   r   )r   r   r   r  r   r  rY   z
str | Noner   r  rO   r   )r   r   r   r  rO   r   )r   r   rv   r   rO   r  )r   r   rO   r   )r   r   rO   r   )r   r   rO   r   )r   r   rO   r   )5__name__
__module____qualname__r$   r)   r+   r1   r6   r9   r   r;   rR   rU   propertyrW   rY   r[   r_   rc   rk   rr   rt   ry   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      s-   NNN )	N
 N 
N"



 G GU U< <8	# 
(   ( ( 
 

 6 6I IO<
ZZ&Z-:ZMYZ	ZE
[[[[[[

[













0J9,
,77 7 	7
  7 7 7 7 7 
7B


  	

 
 
 

*


  	

 
 
 

*0 + 
 
  
 	 

  
  
 
 
D0	6 3 3 1 1 . . / /r%   r   c                      e Zd ZddZddZy)r   c                    || _         y r   _compliant_seriesr8   s     r#   r$   z&PolarsSeriesDateTimeNamespace.__init__  
    !'r%   c                     d fd}|S )Nc                     t        | |      \  } }j                  j                   t        j                  j                  j
                        | i |      S r   )r   r  r9   rH   r   r   rI   s     r#   rM   z7PolarsSeriesDateTimeNamespace.__getattr__.<locals>.func  sU    .tV<LD&))==G..==@@$GXQWX r%   rN   r'   rQ   s   `` r#   rR   z)PolarsSeriesDateTimeNamespace.__getattr__      	 r%   Nr   r   r    r   rO   r   r  r  r  r  r$   rR   r'   r%   r#   r   r         (r%   r   c                      e Zd ZddZddZy)r   c                    || _         y r   r  r8   s     r#   r$   z$PolarsSeriesStringNamespace.__init__  r  r%   c                     d fd}|S )Nc                     t        | |      \  } }j                  j                   t        j                  j                  j
                        | i |      S r   )r   r  r9   rH   r   r   rI   s     r#   rM   z5PolarsSeriesStringNamespace.__getattr__.<locals>.func  U    .tV<LD&))==H..==AA4H$YRXY r%   rN   r'   rQ   s   `` r#   rR   z'PolarsSeriesStringNamespace.__getattr__  r  r%   Nr  r  r  r'   r%   r#   r   r     r  r%   r   c                      e Zd ZddZddZy)r   c                    || _         y r   r  r8   s     r#   r$   z!PolarsSeriesCatNamespace.__init__  r  r%   c                     d fd}|S )Nc                     t        | |      \  } }j                  j                   t        j                  j                  j
                        | i |      S r   )r   r  r9   rH   r   r   rI   s     r#   rM   z2PolarsSeriesCatNamespace.__getattr__.<locals>.func  r  r%   rN   r'   rQ   s   `` r#   rR   z$PolarsSeriesCatNamespace.__getattr__  r  r%   Nr  r  r  r'   r%   r#   r   r     r  r%   r   c                  $    e Zd ZddZddZddZy)r   c                    || _         y r   )_seriesr8   s     r#   r$   z"PolarsSeriesListNamespace.__init__  s	    r%   c                B   | j                   j                  }|j                  j                         }| j                   j                  dk  rdd l} |j                   |j                  |j                                j                  |      j                  d             |j                     j                   |j                               }n=| j                   j                  dk  r$dd l}|j                   |j                               }| j                   j                  |      S )N)rh   r   r   )rh      )r   r   r   rT   r   r?   r   r   r   r   r   rY   rc   UInt32r9   )r   r   r   rD   s       r#   rT   zPolarsSeriesListNamespace.len  s    33%**..0<<((72%BII..00166}EOOPTU  ""&$yryy{"3  \\**W4)..yryy{;M||//>>r%   c                     d fd}|S )Nc                     t        | |      \  } }j                  j                   t        j                  j                  j
                        | i |      S r   )r   r   r9   rH   r   r   rI   s     r#   rM   z3PolarsSeriesListNamespace.__getattr__.<locals>.func  sP    .tV<LD&<<33?3388$?PP r%   rN   r'   rQ   s   `` r#   rR   z%PolarsSeriesListNamespace.__getattr__  r  r%   Nr  )r   r   rO   r   r  )r  r  r  r$   rT   rR   r'   r%   r#   r   r     s    ?&r%   r   )#
__future__r   typingr   r   r   r   narwhals._polars.utilsr   r	   r
   r   narwhals.utilsr   r   typesr   r   numpynpr?   rD   typing_extensionsr   rC   r   narwhals.dtypesr   r   r   r   r   r   r   r   r'   r%   r#   <module>r/     s    "      6 1 ; ; ) 3 &:%&AT/ T/n    r%   