
    g                    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 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 d dlmZ d dlmZ d dlm Z   G d de e         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)Callable)Literal)Sequencereuse_series_implementation)%reuse_series_namespace_implementation)	get_numpy)is_numpy_array)ColumnNotFoundError)Implementation)Self)ArrowDataFrameArrowNamespace)IntoArrowExpr)DType)VersionArrowSeries)CompliantExprc                  8   e Zd ZU ej                  Zded<   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dYdZdZdZd[dZ	e
	 	 	 	 	 	 	 	 	 	 d\d       Ze
	 	 	 	 	 	 	 	 	 	 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dadZdadZd`dZd`dZd`dZd`dZd`dZd`dZd`dZdbdZdbdZdcdZ dbdZ!dbdZ"dbdZ#dbdZ$ddd Z%ddd!Z&dbd"Z'ded#Z(dbd$Z)dbd%Z*dfd&Z+dgd'Z,dbd(Z-dbd)Z.dbd*Z/dbd+Z0dbd,Z1dbd-Z2dbd.Z3dbd/Z4dhd0Z5did1Z6dbd2Z7dbd3Z8dbd4Z9djd5Z:dhd6Z;dhd7Z<d`d8Z=dbd9Z>	 	 	 	 	 	 	 	 	 	 	 	 dkd:Z?	 	 	 	 	 	 	 	 	 	 dld;Z@dbd<ZAdbd=ZBdbd>ZCdbd?ZDdmd@ZE	 	 	 	 	 	 	 	 	 	 dndAZFdodBZG	 	 	 	 	 	 	 	 dpdCZHdqdrdDZIdsdEZJdtdFZKdbdGZL	 	 	 	 	 	 	 	 dudHZMdbdIZNdfdJZOdfdKZPdfdLZQdfdMZR	 	 	 	 	 	 	 	 	 	 dvdNZS	 	 	 	 	 	 	 	 	 	 dvdOZT	 	 	 	 	 	 	 	 	 	 	 	 dwdPZU	 	 	 	 	 	 	 	 	 	 	 	 dwdQZV	 	 	 	 	 	 	 	 dxdRZWeXdydS       ZYeXdzdT       ZZeXd{dU       Z[eXd|dV       Z\eXd}dW       Z]yX)~	ArrowExprr   _implementationc                   || _         || _        || _        || _        || _        || _        t
        j                  | _        || _        || _	        || _
        y N)_call_depth_function_name_root_names_output_namesr   PYARROWr   _backend_version_version_kwargs)	selfcalldepthfunction_name
root_namesoutput_namesbackend_versionversionkwargss	            I/var/www/openai/venv/lib/python3.12/site-packages/narwhals/_arrow/expr.py__init__zArrowExpr.__init__    sU     
+%)-55 /    c                n    d| j                    d| j                   d| j                   d| j                   S )NzArrowExpr(depth=z, function_name=z, root_names=z, output_names=)r    r!   r"   r#   r(   s    r1   __repr__zArrowExpr.__repr__7   sM    [[M "!001 2**+ , ../	1	
r3   c                $    | j                  |      S r   )r   )r(   dfs     r1   __call__zArrowExpr.__call__@   s    zz"~r3   c          
     d    ddl m dfd} | |ddt              t              ||i       S )Nr   r   c           	     4   	 D cg c]/  } | j                   |   || j                  | j                        1 c}S c c}w # t        $ rK}D cg c]  }|| j                  vs| nc c}w }}t        j                  || j                        |d }~ww xY w)Nnamer.   r/   )missing_columnsavailable_columns)_native_framer%   r&   KeyErrorcolumnsr   'from_missing_and_available_column_names)r8   column_nameexr>   r   column_namess        r1   funcz)ArrowExpr.from_column_names.<locals>.funcL   s     (4 (4  ((5((*(;(; "	 (4    .:"Rlarzz>Q1l"R"R)QQ$3&(jj s7   A 4>A A 	BBA)$A)(*BBcolr*   r+   r,   r-   r.   r/   r0   r8   r   returnzlist[ArrowSeries])narwhals._arrow.seriesr   list)clsr.   r/   rG   rH   r   s      ` @r1   from_column_nameszArrowExpr.from_column_namesC   s>     	7	$ L)l++	
 		
r3   c          
     @    ddl m dfd} | |ddd d ||i       S )Nr   r   c           	         D cg c]F  } | j                   |   | j                   j                  |   | j                  | j                        H c}S c c}w )Nr<   )r@   rG   r%   r&   )r8   column_indexr   column_indicess     r1   rH   z+ArrowExpr.from_column_indices.<locals>.funcr   se     %3 %3L $$\2))66|D$&$7$7KK	 %3  s   AAnthrJ   rK   )rM   r   )rO   r.   r/   rT   rH   r   s      ` @r1   from_column_indiceszArrowExpr.from_column_indicesi   s4     	7		 +	
 		
r3   c                J    ddl m}  || j                  | j                        S )Nr   r   )r.   r/   )narwhals._arrow.namespacer   r%   r&   )r(   r   s     r1   __narwhals_namespace__z ArrowExpr.__narwhals_namespace__   s!    < 114==
 	
r3   c                     y r    r5   s    r1   __narwhals_expr__zArrowExpr.__narwhals_expr__   s    sr3   c                    t        | d|      S )N__eq__otherr	   r(   r`   s     r1   r^   zArrowExpr.__eq__       *4GGr3   c                    t        | d|      S )N__ne__r_   r	   ra   s     r1   rd   zArrowExpr.__ne__   rb   r3   c                    t        | d|      S )N__ge__r_   r	   ra   s     r1   rf   zArrowExpr.__ge__   rb   r3   c                    t        | d|      S )N__gt__r_   r	   ra   s     r1   rh   zArrowExpr.__gt__   rb   r3   c                    t        | d|      S )N__le__r_   r	   ra   s     r1   rj   zArrowExpr.__le__   rb   r3   c                    t        | d|      S )N__lt__r_   r	   ra   s     r1   rl   zArrowExpr.__lt__   rb   r3   c                    t        | d|      S )N__and__r_   r	   ra   s     r1   rn   zArrowExpr.__and__       *4%HHr3   c                    t        | d|      S )N__or__r_   r	   ra   s     r1   rq   zArrowExpr.__or__   rb   r3   c                    t        | d|      S )N__add__r_   r	   ra   s     r1   rs   zArrowExpr.__add__   ro   r3   c                    t        | d|      S )N__sub__r_   r	   ra   s     r1   ru   zArrowExpr.__sub__   ro   r3   c                    t        | d|      S )N__mul__r_   r	   ra   s     r1   rw   zArrowExpr.__mul__   ro   r3   c                    t        | d|      S )N__pow__r_   r	   ra   s     r1   ry   zArrowExpr.__pow__   ro   r3   c                    t        | d|      S )N__floordiv__r_   r	   ra   s     r1   r{   zArrowExpr.__floordiv__   s    *4uMMr3   c                    t        | d|      S )N__truediv__r_   r	   ra   s     r1   r}   zArrowExpr.__truediv__   s    *4eLLr3   c                    t        | d|      S )N__mod__r_   r	   ra   s     r1   r   zArrowExpr.__mod__   ro   r3   c                    t        | d      S )N
__invert__r	   r5   s    r1   r   zArrowExpr.__invert__       *4>>r3   c                    t        | dd      S )NlenTreturns_scalarr	   r5   s    r1   r   zArrowExpr.len       *4tLLr3   c                \    | j                         } |j                  | }t        | d|      S )Nfilterr_   )rY   all_horizontalr
   )r(   
predicatesplxexprs       r1   r   zArrowExpr.filter   s1    ))+!s!!:.*4FFr3   c                    t        | dd      S )NmeanTr   r	   r5   s    r1   r   zArrowExpr.mean       *4MMr3   c                    t        | dd      S )NmedianTr   r	   r5   s    r1   r   zArrowExpr.median   s    *4$OOr3   c                    t        | dd      S )NcountTr   r	   r5   s    r1   r   zArrowExpr.count   s    *4NNr3   c                    t        | dd      S )Nn_uniqueTr   r	   r5   s    r1   r   zArrowExpr.n_unique   s    *4DQQr3   c                     t        | d|d      S )NstdTddofr   r	   r(   r   s     r1   r   zArrowExpr.std       *4TRVWWr3   c                     t        | d|d      S )NvarTr   r	   r   s     r1   r   zArrowExpr.var   r   r3   c                    t        | dd      S )NskewTr   r	   r5   s    r1   r   zArrowExpr.skew   r   r3   c                    t        | d|      S )Ncast)dtyper	   )r(   r   s     r1   r   zArrowExpr.cast   s    *4uEEr3   c                    t        | d      S )Nabsr	   r5   s    r1   r   zArrowExpr.abs   s    *477r3   c                    t        | d      S )Ndiffr	   r5   s    r1   r   zArrowExpr.diff       *488r3   c                   t        | d|      S )Ncum_sumreverser	   r(   r   s     r1   r   zArrowExpr.cum_sum       *4GLLr3   c                    t        | d|      S )Nround)decimalsr	   )r(   r   s     r1   r   zArrowExpr.round   s    *48LLr3   c                    t        | dd      S )NanyTr   r	   r5   s    r1   r   zArrowExpr.any   r   r3   c                    t        | dd      S )NminTr   r	   r5   s    r1   r   zArrowExpr.min   r   r3   c                    t        | dd      S )NmaxTr   r	   r5   s    r1   r   zArrowExpr.max   r   r3   c                    t        | dd      S )Narg_minTr   r	   r5   s    r1   r   zArrowExpr.arg_min       *44PPr3   c                    t        | dd      S )Narg_maxTr   r	   r5   s    r1   r   zArrowExpr.arg_max   r   r3   c                    t        | dd      S )NallTr   r	   r5   s    r1   r   zArrowExpr.all   r   r3   c                    t        | dd      S )NsumTr   r	   r5   s    r1   r   zArrowExpr.sum   r   r3   c                    t        | d      S )N
drop_nullsr	   r5   s    r1   r   zArrowExpr.drop_nulls  r   r3   c                    t        | d|      S )Nshiftnr	   r(   r   s     r1   r   zArrowExpr.shift  s    *4A>>r3   c                      j                   fd j                   j                   j                  g j                   j
                  i  j                  di      S )Nc                j    j                  |       D cg c]  }|j                         c}S c c}w r   )r   alias)r8   seriesr=   r(   s     r1   <lambda>z!ArrowExpr.alias.<locals>.<lambda>  s(    BHvT*HHs   0r=   rJ   )	__class__r    r!   r"   r%   r&   r'   )r(   r=   s   ``r1   r   zArrowExpr.alias  s_     ~~H++--'' 11MM1dll1FD1  	
 		
r3   c                    t        | dd      S )N
null_countTr   r	   r5   s    r1   r   zArrowExpr.null_count  s    *4dSSr3   c                    t        | d      S )Nis_nullr	   r5   s    r1   r   zArrowExpr.is_null  s    *4;;r3   c                    t        | d      S )Nis_nanr	   r5   s    r1   r   zArrowExpr.is_nan  s    *4::r3   c                "    t        | d|||      S )N
is_between)lower_boundupper_boundclosedr	   )r(   r   r   r   s       r1   r   zArrowExpr.is_between  s    *##
 	
r3   c                    t        | d|      S )Nheadr   r	   r   s     r1   r   zArrowExpr.head(      *41==r3   c                    t        | d|      S )Ntailr   r	   r   s     r1   r   zArrowExpr.tail+  r   r3   c                    t        | d|      S )Nis_inr_   r	   ra   s     r1   r   zArrowExpr.is_in.  s    *4FFr3   c                    t        | d      S )Narg_truer	   r5   s    r1   r   zArrowExpr.arg_true1  s    *4<<r3   c               $    t        | d||||      S )Nsample)r   fractionwith_replacementseedr	   )r(   r   r   r   r   s        r1   r   zArrowExpr.sample4  s#     +-
 	
r3   c                "    t        | d|||      S )N	fill_null)valuestrategylimitr	   )r(   r   r   r   s       r1   r   zArrowExpr.fill_nullE  s     ++UXU
 	
r3   c                    t        | d      S )Nis_duplicatedr	   r5   s    r1   r   zArrowExpr.is_duplicatedO  s    *4AAr3   c                    t        | d      S )N	is_uniquer	   r5   s    r1   r   zArrowExpr.is_uniqueR      *4==r3   c                    t        | d      S )Nis_first_distinctr	   r5   s    r1   r   zArrowExpr.is_first_distinctU  s    *41DEEr3   c                    t        | d      S )Nis_last_distinctr	   r5   s    r1   r   zArrowExpr.is_last_distinctX  s    *41CDDr3   c                   t        | d|      S )Nunique)maintain_orderr	   )r(   r   s     r1   r   zArrowExpr.unique[  s    *4.YYr3   c               "    t        | d|||      S )Nreplace_strict)oldnewreturn_dtyper	   )r(   r   r   r   s       r1   r   zArrowExpr.replace_strict^  s     +"<
 	
r3   c                    t        | d||      S )Nsort)
descending
nulls_lastr	   )r(   r   r   s      r1   r   zArrowExpr.sorte  s    *&ZJ
 	
r3   c                "    t        | dd||      S )NquantileT)r   r  interpolationr	   )r(   r  r  s      r1   r  zArrowExpr.quantilej  s     
 +'
 	
r3   c                     t        | d||      S )Ngather_every)r   offsetr	   )r(   r   r  s      r1   r  zArrowExpr.gather_everyw  s    *41VTTr3   c                     t        | d||      S )Nclip)r   r   r	   )r(   r   r   s      r1   r  zArrowExpr.clipz  s    *&k{
 	
r3   c                     d fd} j                  | j                  dz    j                  dz    j                   j                   j
                   j                  i  j                  di      S )Nc                   j                   d}t        |       | j                  ddij                        } | j                   j                  |dd      }j                   D cg c]  }||   	 c}S c c}w )NzAnonymous expressions are not supported in over.
Instead of `nw.all()`, try using a named expression, such as `nw.col('a', 'b')`
drop_null_keysFleft_right)howleft_onright_onsuffix)r#   
ValueErrorgroup_byaggselectjoin)r8   msgtmpr=   keysr(   s       r1   rH   zArrowExpr.over.<locals>.func  s    !!)+ 
 !o%"++t:E:>>tDC"))T"''X ( C +/*<*<=*<$CI*<===s   -A<   z->overr  rJ   rK   r   r    r!   r"   r#   r%   r&   r'   )r(   r  rH   s   `` r1   overzArrowExpr.over  sq    	> ~~++/--8''++ 11MM1dll1FD1  	
 		
r3   c                    t        | d      S )Nmoder	   r5   s    r1   r  zArrowExpr.mode  r   r3   c                     d fd} j                  | j                  dz    j                  dz    j                   j                   j
                   j                  i  j                  d      S )Nc                   j                  |       }|D cg c]  }|j                   }}|D cg c]
  } 	|       }}t        |d         rKt        ||      D cg c]3  \  }}| j	                         j                  |      j                  |      5 }}}nkt               x}_|j                  |d         rKt        ||      D cg c]4  \  }}| j	                         j                  |g      j                  |      6 }}}
|D cg c]  }|j                  
       }}|S c c}w c c}w c c}}w c c}}w c c}w )Nr   )
r   r=   r   ziprY   _create_compliant_seriesr   r   isscalarr   )r8   input_series_listinput_seriesr-   r   resultarrayoutput_namenpfunctionr   r(   s            r1   rH   z#ArrowExpr.map_batches.<locals>.func  se    $

2BSTBS,L--BSLT5FG5F6hv&5FFGfQi(
 /2&,.G	 /H*{ --/--e4U;'( /H	   "#"0R[[5K
 /2&,.G	 /H*{ --/--ug6U;'( /H	   'BHI&&++l3&IM' UG Js   D'D,8D1	9D7D=r  z->map_batches)r*  r   rJ   rK   r  )r(   r*  r   rH   s   ``` r1   map_batcheszArrowExpr.map_batches  sq    
	. ~~++/--?''++ 11MMWdllW,W  	
 		
r3   c                    t        | d      S )N	is_finiter	   r5   s    r1   r-  zArrowExpr.is_finite  r   r3   c                   t        | d|      S )N	cum_countr   r	   r   s     r1   r/  zArrowExpr.cum_count  s    *4gNNr3   c                   t        | d|      S )Ncum_minr   r	   r   s     r1   r1  zArrowExpr.cum_min  r   r3   c                   t        | d|      S )Ncum_maxr   r	   r   s     r1   r3  zArrowExpr.cum_max  r   r3   c                   t        | d|      S )Ncum_prodr   r	   r   s     r1   r5  zArrowExpr.cum_prod  s    *4WMMr3   c               "    t        | d|||      S )Nrolling_sumwindow_sizemin_periodscenterr	   r(   r9  r:  r;  s       r1   r7  zArrowExpr.rolling_sum  s      +##
 	
r3   c               "    t        | d|||      S )Nrolling_meanr8  r	   r<  s       r1   r>  zArrowExpr.rolling_mean  s      +##
 	
r3   c               $    t        | d||||      S )Nrolling_varr9  r:  r;  r   r	   r(   r9  r:  r;  r   s        r1   r@  zArrowExpr.rolling_var  #     +##
 	
r3   c               $    t        | d||||      S )Nrolling_stdrA  r	   rB  s        r1   rE  zArrowExpr.rolling_std  rC  r3   c                    t        | d||      S )Nrank)methodr   r	   )r(   rH  r   s      r1   rG  zArrowExpr.rank  s     +&J
 	
r3   c                    t        |       S r   )ArrowExprDateTimeNamespacer5   s    r1   dtzArrowExpr.dt  s    )$//r3   c                    t        |       S r   )ArrowExprStringNamespacer5   s    r1   strzArrowExpr.str   s    '--r3   c                    t        |       S r   )ArrowExprCatNamespacer5   s    r1   catzArrowExpr.cat$  s    $T**r3   c                    t        |       S r   )ArrowExprNameNamespacer5   s    r1   r=   zArrowExpr.name(      %d++r3   c                    t        |       S r   )ArrowExprListNamespacer5   s    r1   rN   zArrowExpr.list,  rT  r3   N)r(   r   r)   z1Callable[[ArrowDataFrame], Sequence[ArrowSeries]]r*   intr+   rN  r,   list[str] | Noner-   rX  r.   tuple[int, ...]r/   r   r0   zdict[str, Any]rL   None)r(   r   rL   rN  )r8   r   rL   zSequence[ArrowSeries])
rO   
type[Self]rG   rN  r.   rY  r/   r   rL   r   )
rO   r[  rT   rW  r.   rY  r/   r   rL   r   )r(   r   rL   r   )r(   r   rL   rZ  )r(   r   r`   zArrowExpr | AnyrL   r   )r(   r   r`   zArrowExpr | bool | AnyrL   r   )r(   r   rL   r   )r(   r   r   r   rL   r   )r(   r   r   rW  rL   r   )r(   r   r   r   rL   r   )r(   r   r   boolrL   r   )r(   r   r   rW  rL   r   )r(   r   r   rW  rL   r   )r(   r   r=   rN  rL   r   )
r(   r   r   r   r   r   r   rN  rL   r   )r(   r   r   
int | Noner   zfloat | Noner   r\  r   r]  rL   r   )
r(   r   r   
Any | Noner   z%Literal['forward', 'backward'] | Noner   r]  rL   r   )r(   r   r   r\  rL   r   )
r(   r   r   Sequence[Any]r   r_  r   DType | NonerL   r   )r(   r   r   r\  r   r\  rL   r   )r(   r   r  floatr  z;Literal['nearest', 'higher', 'lower', 'midpoint', 'linear']rL   r   )r   )r(   r   r   rW  r  rW  rL   r   )r(   r   r   r^  r   r^  rL   r   )r(   r   r  z	list[str]rL   r   )r(   r   r*  zCallable[[Any], Any]r   r`  rL   r   )
r(   r   r9  rW  r:  r]  r;  r\  rL   r   )r(   r   r9  rW  r:  r]  r;  r\  r   rW  rL   r   )r(   r   rH  z4Literal['average', 'min', 'max', 'dense', 'ordinal']r   r\  rL   r   )r(   r   rL   rJ  )r(   r   rL   rM  )r(   r   rL   rP  )r(   r   rL   rS  )r(   r   rL   rV  )^__name__
__module____qualname__r   r$   r   __annotations__r2   r6   r9   classmethodrP   rV   rY   r\   r^   rd   rf   rh   rj   rl   rn   rq   rs   ru   rw   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   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r+  r-  r/  r1  r3  r5  r7  r>  r@  rE  rG  propertyrK  rN  rQ  r=   rN   r[   r3   r1   r   r      s   &4&<&<O^<? 	
  % ' )   
.
 #
#
#
 )#
 	#

 
#
 #
J 


 )
 	

 

 
<
 3HHHHHHIHIIIINMI?MG
NPORXXNF89MMMMMQQMM??
T<;
>>G=


 	

 
 
 

"


 8
 	

 

B>FEZ

&
-:
MY
	





 S
 
	
U


49%
%
&%
 #%
 
	%
N>OMMN


  	

 
 




  	

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

 
 
 

"


  	

 
 
 

"

D
 	

 

 0 0 . . + + , , , ,r3   r   c                      e Zd ZddZddZy)rP  c                    || _         y r   _compliant_exprr(   r   s     r1   r2   zArrowExprCatNamespace.__init__2  
    #r3   c                0    t        | j                  dd      S )NrQ  get_categoriesr   rk  r5   s    r1   ro  z$ArrowExprCatNamespace.get_categories5  s    4  
 	
r3   Nr(   r   r   r   rL   rZ  r(   r   rL   r   )rb  rc  rd  r2   ro  r[   r3   r1   rP  rP  1  s    $
r3   rP  c                      e Zd ZddZddZddZddZd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y)rJ  c                    || _         y r   rj  rl  s     r1   r2   z#ArrowExprDateTimeNamespace.__init__>  rm  r3   c                4    t        | j                  dd|      S )NrK  	to_stringformatrp  r(   rx  s     r1   rv  z$ArrowExprDateTimeNamespace.to_stringA  s    4  $F
 	
r3   c                4    t        | j                  dd|      S )NrK  replace_time_zone	time_zonerp  r(   r}  s     r1   r{  z,ArrowExprDateTimeNamespace.replace_time_zoneF      4  $(;y
 	
r3   c                4    t        | j                  dd|      S )NrK  convert_time_zoner|  rp  r~  s     r1   r  z,ArrowExprDateTimeNamespace.convert_time_zoneK  r  r3   c                4    t        | j                  dd|      S )NrK  	timestamp)	time_unitrp  )r(   r  s     r1   r  z$ArrowExprDateTimeNamespace.timestampP  s    4  $y
 	
r3   c                0    t        | j                  dd      S )NrK  daterp  r5   s    r1   r  zArrowExprDateTimeNamespace.dateU      4T5I5I4QWXXr3   c                0    t        | j                  dd      S )NrK  yearrp  r5   s    r1   r  zArrowExprDateTimeNamespace.yearX  r  r3   c                0    t        | j                  dd      S )NrK  monthrp  r5   s    r1   r  z ArrowExprDateTimeNamespace.month[  s    4T5I5I4QXYYr3   c                0    t        | j                  dd      S )NrK  dayrp  r5   s    r1   r  zArrowExprDateTimeNamespace.day^  s    4T5I5I4QVWWr3   c                0    t        | j                  dd      S )NrK  hourrp  r5   s    r1   r  zArrowExprDateTimeNamespace.houra  r  r3   c                0    t        | j                  dd      S )NrK  minuterp  r5   s    r1   r  z!ArrowExprDateTimeNamespace.minuted      4T5I5I4QYZZr3   c                0    t        | j                  dd      S )NrK  secondrp  r5   s    r1   r  z!ArrowExprDateTimeNamespace.secondg  r  r3   c                0    t        | j                  dd      S )NrK  millisecondrp  r5   s    r1   r  z&ArrowExprDateTimeNamespace.millisecondj      4  $
 	
r3   c                0    t        | j                  dd      S )NrK  microsecondrp  r5   s    r1   r  z&ArrowExprDateTimeNamespace.microsecondo  r  r3   c                0    t        | j                  dd      S )NrK  
nanosecondrp  r5   s    r1   r  z%ArrowExprDateTimeNamespace.nanosecondt  s    4  $
 	
r3   c                0    t        | j                  dd      S )NrK  ordinal_dayrp  r5   s    r1   r  z&ArrowExprDateTimeNamespace.ordinal_dayy  r  r3   c                0    t        | j                  dd      S )NrK  weekdayrp  r5   s    r1   r  z"ArrowExprDateTimeNamespace.weekday~  s    4  $	
 	
r3   c                0    t        | j                  dd      S )NrK  total_minutesrp  r5   s    r1   r  z(ArrowExprDateTimeNamespace.total_minutes      4  $
 	
r3   c                0    t        | j                  dd      S )NrK  total_secondsrp  r5   s    r1   r  z(ArrowExprDateTimeNamespace.total_seconds  r  r3   c                0    t        | j                  dd      S )NrK  total_millisecondsrp  r5   s    r1   r  z-ArrowExprDateTimeNamespace.total_milliseconds      4  $(<
 	
r3   c                0    t        | j                  dd      S )NrK  total_microsecondsrp  r5   s    r1   r  z-ArrowExprDateTimeNamespace.total_microseconds  r  r3   c                0    t        | j                  dd      S )NrK  total_nanosecondsrp  r5   s    r1   r  z,ArrowExprDateTimeNamespace.total_nanoseconds  s    4  $(;
 	
r3   Nrq  )r(   r   rx  rN  rL   r   )r(   r   r}  
str | NonerL   r   )r(   r   r}  rN  rL   r   )us)r(   r   r  zLiteral['ns', 'us', 'ms']rL   r   rr  )rb  rc  rd  r2   rv  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r[   r3   r1   rJ  rJ  =  sw    $







YYZXY[[


















r3   rJ  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y)rM  c                    || _         y r   rj  rl  s     r1   r2   z!ArrowExprStringNamespace.__init__  rm  r3   c                0    t        | j                  dd      S )NrN  	len_charsrp  r5   s    r1   r  z"ArrowExprStringNamespace.len_chars  s    4  %
 	
r3   c          	     :    t        | j                  dd||||      S )NrN  replace)patternr   literalr   rp  )r(   r  r   r  r   s        r1   r  z ArrowExprStringNamespace.replace  s,     5  
 	
r3   c               8    t        | j                  dd|||      S )NrN  replace_all)r  r   r  rp  )r(   r  r   r  s       r1   r  z$ArrowExprStringNamespace.replace_all  s)     5  
 	
r3   c                4    t        | j                  dd|      S )NrN  strip_chars)
charactersrp  )r(   r  s     r1   r  z$ArrowExprStringNamespace.strip_chars  s!    4  !	
 	
r3   c                4    t        | j                  dd|      S )NrN  starts_with)prefixrp  )r(   r  s     r1   r  z$ArrowExprStringNamespace.starts_with  !    4  	
 	
r3   c                4    t        | j                  dd|      S )NrN  	ends_with)r  rp  )r(   r  s     r1   r  z"ArrowExprStringNamespace.ends_with  s!    4  	
 	
r3   c               6    t        | j                  dd||      S )NrN  contains)r  r  rp  )r(   r  r  s      r1   r  z!ArrowExprStringNamespace.contains  s     4  %Wg
 	
r3   c                6    t        | j                  dd||      S )NrN  slice)r  lengthrp  )r(   r  r  s      r1   r  zArrowExprStringNamespace.slice  s     4  %
 	
r3   c                4    t        | j                  dd|      S )NrN  to_datetimerw  rp  ry  s     r1   r  z$ArrowExprStringNamespace.to_datetime  r  r3   c                0    t        | j                  dd      S )NrN  to_uppercaserp  r5   s    r1   r  z%ArrowExprStringNamespace.to_uppercase      4  
 	
r3   c                0    t        | j                  dd      S )NrN  to_lowercaserp  r5   s    r1   r  z%ArrowExprStringNamespace.to_lowercase  r  r3   Nrq  rr  )r(   r   r  rN  r   rN  r  r\  r   rW  rL   r   )
r(   r   r  rN  r   rN  r  r\  rL   r   )r(   r   r  r  rL   r   r(   r   r  rN  rL   r   r(   r   r  rN  rL   r   )r  rN  r  r\  rL   r   )r(   r   r  rW  r  r]  rL   r   )r(   r   rx  r  rL   r   )rb  rc  rd  r2   r  r  r  r  r  r  r  r  r  r  r  r[   r3   r1   rM  rM    s    $




 

 
 
 

$


 

 
 

 









r3   rM  c                  D    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	y)rS  c                    || _         y r   rj  rl  s     r1   r2   zArrowExprNameNamespace.__init__  rm  r3   c           
     f     j                   j                  d}t        |       j                   j                   fd j                   j                   j                   j
                   j                   j                   j                   j                   j                   j                        S )NzAnonymous expressions are not supported in `.name.keep`.
Instead of `nw.all()`, try using a named expression, such as `nw.col('a', 'b')`
c                    t        j                  j                  |             D cg c]  \  }}|j                  |       c}}S c c}}w r   r!  rk  r   r   )r8   r   r=   r,   r(   s      r1   r   z-ArrowExprNameNamespace.keep.<locals>.<lambda>  sH    $'(<(<(B(B2(F
$S$SLFD T"$S    A	rJ   )	rk  r"   r  r   r    r!   r%   r&   r'   )r(   r  r,   s   ` @r1   keepzArrowExprNameNamespace.keep  s    ))55
' 
 S/!##-- &&--..==!# 00AA((11''// . 
 	
r3   c                     j                   j                  }|d}t        |      |D cg c]  } |t        |             c} j                   j	                   fd j                   j
                   j                   j                  | j                   j                   j                   j                  i  j                   j                  d|i      S c c}w )NzAnonymous expressions are not supported in `.name.map`.
Instead of `nw.all()`, try using a named expression, such as `nw.col('a', 'b')`
c                    t        j                  j                  |             D cg c]  \  }}|j                  |       c}}S c c}}w r   r  r8   r   r=   r-   r(   s      r1   r   z,ArrowExprNameNamespace.map.<locals>.<lambda>,  H    $'(<(<(B(B2(F$U$ULFD T"$U r  r*  rJ   
rk  r"   r  rN  r   r    r!   r%   r&   r'   )r(   r*  r,   r  r=   r-   s   `    @r1   mapzArrowExprNameNamespace.map  s    ))55
' 
 S/!8BC
T+
C##-- &&--..==!% 00AA((11Id**22IJI . 
 	
 Ds   Cc                     j                   j                  }|d}t        |      |D cg c]  }|t        |      z    c} j                   j	                   fd j                   j
                   j                   j                  | j                   j                   j                   j                  i  j                   j                  d|i      S c c}w )NzAnonymous expressions are not supported in `.name.prefix`.
Instead of `nw.all()`, try using a named expression, such as `nw.col('a', 'b')`
c                    t        j                  j                  |             D cg c]  \  }}|j                  |       c}}S c c}}w r   r  r  s      r1   r   z/ArrowExprNameNamespace.prefix.<locals>.<lambda>E  r  r  r  rJ   r  )r(   r  r,   r  r=   r-   s   `    @r1   r  zArrowExprNameNamespace.prefix9  s    ))55
' 
 S/!7ABztT*zB##-- &&--..==!% 00AA((11Ed**22EHfE . 
 	
 C   Cc                     j                   j                  }|d}t        |      |D cg c]  }t        |      |z    c} j                   j	                   fd j                   j
                   j                   j                  | j                   j                   j                   j                  i  j                   j                  d|i      S c c}w )NzAnonymous expressions are not supported in `.name.suffix`.
Instead of `nw.all()`, try using a named expression, such as `nw.col('a', 'b')`
c                    t        j                  j                  |             D cg c]  \  }}|j                  |       c}}S c c}}w r   r  r  s      r1   r   z/ArrowExprNameNamespace.suffix.<locals>.<lambda>_  r  r  r  rJ   r  )r(   r  r,   r  r=   r-   s   `    @r1   r  zArrowExprNameNamespace.suffixR  s    ))55
' 
 S/!7ABztD	F*zB##-- &&--..==!% 00AA((11Ed**22EHfE . 
 	
 Cr  c           
          j                   j                  }|d}t        |      |D cg c]  }t        |      j	                          c} j                   j                   fd j                   j                   j                   j                  | j                   j                   j                   j                   j                   j                        S c c}w )NzAnonymous expressions are not supported in `.name.to_lowercase`.
Instead of `nw.all()`, try using a named expression, such as `nw.col('a', 'b')`
c                    t        j                  j                  |             D cg c]  \  }}|j                  |       c}}S c c}}w r   r  r  s      r1   r   z5ArrowExprNameNamespace.to_lowercase.<locals>.<lambda>y  r  r  rJ   )rk  r"   r  rN  lowerr   r    r!   r%   r&   r'   r(   r,   r  r=   r-   s   `   @r1   r  z#ArrowExprNameNamespace.to_lowercasel      ))55
' 
 S/!6@AjdD	)jA##-- &&--..==!% 00AA((11''// . 
 	
 B    Cc           
          j                   j                  }|d}t        |      |D cg c]  }t        |      j	                          c} j                   j                   fd j                   j                   j                   j                  | j                   j                   j                   j                   j                   j                        S c c}w )NzAnonymous expressions are not supported in `.name.to_uppercase`.
Instead of `nw.all()`, try using a named expression, such as `nw.col('a', 'b')`
c                    t        j                  j                  |             D cg c]  \  }}|j                  |       c}}S c c}}w r   r  r  s      r1   r   z5ArrowExprNameNamespace.to_uppercase.<locals>.<lambda>  r  r  rJ   )rk  r"   r  rN  upperr   r    r!   r%   r&   r'   r  s   `   @r1   r  z#ArrowExprNameNamespace.to_uppercase  r  r  Nrq  rr  )r(   r   r*  zCallable[[str], str]rL   r   r  r  )
rb  rc  rd  r2   r  r  r  r  r  r  r[   r3   r1   rS  rS    s%    $
2
6
2
4
4
r3   rS  c                      e Zd ZddZddZy)rV  c                    || _         y r   )_exprrl  s     r1   r2   zArrowExprListNamespace.__init__  s	    
r3   c                0    t        | j                  dd      S )NrN   r   )r   r  r5   s    r1   r   zArrowExprListNamespace.len  s    4JJ
 	
r3   Nrq  rr  )rb  rc  rd  r2   r   r[   r3   r1   rV  rV    s    
r3   rV  N)'
__future__r   typingr   r   r   r   r   narwhals._expression_parsingr
   r   narwhals.dependenciesr   r   narwhals.exceptionsr   narwhals.utilsr   typing_extensionsr   narwhals._arrow.dataframer   rX   r   narwhals._arrow.typingr   narwhals.dtypesr   r   rM   r   narwhals.typingr   r   rP  rJ  rM  rS  rV  r[   r3   r1   <module>r     s    "       D N + 0 3 )&884%& . )Q,k* Q,h	
 	
]
 ]
@a
 a
H]
 ]
@	
 	
r3   