
    h                     F   S SK Jr  S SKJr  S SKJr  S SKJr  S SKJr  S SK	J
r
  S SKJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJr  S SKJr  \(       a<  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJ r   S SK!J"r"  S SKJ#r#  S SKJ$r$   " S S\S\
4   5      r%g)    )annotations)TYPE_CHECKING)Any)SequenceNArrowSeries)	EagerExpr)!evaluate_output_names_and_aliases)is_scalar_like)ColumnNotFoundError)Implementation)generate_temporary_column_name)not_implemented)Self)ArrowDataFrameArrowNamespace)
AliasNames)	EvalNames)
EvalSeries)ExprMetadata)
RankMethod)Version)_FullContextc                  N   \ rS rSr% \R
                  rS\S'   SSS.                   SS jjr\	SS.         SS	 jj5       r
\	        SS
 j5       rSS jrSS jrSS.   SS jjrSS jrS S jrS!S jrSS jrSS jrSS jrSS jrS"S jr\" 5       rSrg)#	ArrowExpr    r   _implementationN)call_kwargsimplementationc                   Xl         X l        X0l        X l        X@l        XPl        X`l        Xpl        U=(       d    0 U l        S U l        g N)	_call_depth_function_name_evaluate_output_names_alias_output_names_backend_version_version_call_kwargs	_metadata)
selfcalldepthfunction_nameevaluate_output_namesalias_output_namesbackend_versionversionr   r    s
             F/var/www/html/env/lib/python3.13/site-packages/narwhals/_arrow/expr.py__init__ArrowExpr.__init__#   sD     
+&;##5  /'-2.2     )r/   c         
     T   ^ SU4S jjnU " USUTS UR                   UR                  S9$ )Nc           
     X  >  T" U 5       Vs/ s H0  n[        U R                  U   UU R                  U R                  S9PM2     sn$ s  snf ! [         aS  nT" U 5       Vs/ s H  o3U R
                  ;  d  M  UPM     Os  snf nn[        R                  " X@R
                  S9UeS nAff = f)Nnamer2   r3   )missing_columnsavailable_columns)r   nativer(   r)   KeyErrorcolumnsr   'from_missing_and_available_column_names)dfcolumn_nameexr=   evaluate_column_namess        r4   func)ArrowExpr.from_column_names.<locals>.funcD   s     (=R'@ (A  		+.((*(;(; "	 (A    4R8#8!RZZ<OA8# # *QQ$3zz	s:   
A 7AA A 
B)
B$ A>7A>='B$$B)r   r.   r/   r0   r1   r2   r3   rC   r   returnzlist[ArrowSeries])r(   r)   )clsrG   contextr/   rH   s    `   r4   from_column_namesArrowExpr.from_column_names;   s8    	& '"7##44$$
 	
r7   c          
     l   ^^ SSK Jm  SUU4S jjnU " USSU4S jS UR                  UR                  S9$ )Nr   r   c           
        > T Vs/ s HD  nT" U R                   U   U R                   R                  U   U R                  U R                  S9PMF     sn$ s  snf )Nr;   )r?   column_namesr(   r)   )rC   column_indexr   column_indicess     r4   rH   +ArrowExpr.from_column_indices.<locals>.funcg   sa     %3 %3L IIl+//=$&$7$7KK	 %3  s   AAnthc                L   > T Vs/ s H  oR                   U   PM     sn$ s  snf r"   )rA   )rC   irU   s     r4   <lambda>/ArrowExpr.from_column_indices.<locals>.<lambda>v   s    ^-T^jjm^-T-Ts   !rJ   rK   )narwhals._arrow.seriesr   r(   r)   )rM   rN   rU   rH   r   s     ` @r4   from_column_indicesArrowExpr.from_column_indicesa   sB     	7		 		 "T##44$$
 	
r7   c                D    SSK Jn  U" U R                  U R                  S9$ )Nr   r   )r2   r3   )narwhals._arrow.namespacer   r(   r)   )r,   r   s     r4   __narwhals_namespace__ ArrowExpr.__narwhals_namespace__|   s!    < 114==
 	
r7   c                    g r"    )r,   s    r4   __narwhals_expr__ArrowExpr.__narwhals_expr__   s    r7   F)returns_scalarc                   U(       a  SS0$ 0 $ )N_return_py_scalarFrd   )r,   rg   s     r4   _reuse_series_extra_kwargs$ArrowExpr._reuse_series_extra_kwargs   s     0>#U+E2Er7   c               "    U R                  SUS9$ )Ncum_sumreverse_reuse_seriesr,   ro   s     r4   rm   ArrowExpr.cum_sum       !!)W!==r7   c                "    U R                  SUS9$ )Nshift)nrp   )r,   rw   s     r4   rv   ArrowExpr.shift   s    !!'Q!//r7   c           
       ^ ^^ T R                   c   eT(       a1  [        T R                   R                  5      (       d  Sn[        U5      eT(       d  Tc   eSUU 4S jjnO	SUU 4S jjnT R	                  UT R
                  S-   T R                  S-   T R                  T R                  T R                  T R                  S9$ )Nz[Only aggregation or literal operations are supported in grouped `over` context for PyArrow.c                ~  > [        SU R                  5      nU R                  U5      R                  " TSSS.6n T" U R	                  U/SS95      n[
        R                  " U R                  U5      R                  5      nU Vs/ s H,  oDR                  UR                  R                  U5      5      PM.     sn$ s  snf )N   F)
descending
nulls_lastT)strict)r   rA   with_row_indexsortdroppcsort_indices
get_columnr?   _with_nativetake)rC   tokenresultsorting_indicessorder_byr,   s        r4   rH   ArrowExpr.over.<locals>.func   s    6q"**E&&u-22%E bggugdg;< #%//"--2F2M2M"NPVWPV1qxx}}_'EFPVWWWs   3B:c                T  > [        TU / 5      u  p[        U5      R                  T5      =n(       a  SU S3n[        U5      eU R                  " TSS06R                  T5      nU R                  " T6 R                  USTTSS9nU Vs/ s H  oeR                  U5      PM     sn$ s  snf )NzColumn names zV appear in both expression output names and in `over` keys.
This is not yet supported.drop_null_keysFleft_right)howleft_onright_onsuffix)	r
   setintersectionNotImplementedErrorgroup_byaggsimple_selectjoinr   )	rC   output_namesaliasesoverlapmsgtmpaliaspartition_byr,   s	          r4   rH   r      s    (I$PRTV(W%!,/<<\JJ7J (y 15 5  .c22kk<FFJJ4P&&5::()# ;  <CC7%u-7CCCs   B%   z->overrJ   )rC   r   rL   zSequence[ArrowSeries])r+   r   kindr   	__class__r$   r%   r&   r'   r(   r)   )r,   r   r   r   rH   s   ```  r4   overArrowExpr.over   s    ~~)))t~~/B/B C CoC%c** '''
X 
XD D* ~~++/--8"&"="=#77 11MM  
 	
r7   c               "    U R                  SUS9$ )N	cum_countrn   rp   rr   s     r4   r   ArrowExpr.cum_count   s    !!+w!??r7   c               "    U R                  SUS9$ )Ncum_minrn   rp   rr   s     r4   r   ArrowExpr.cum_min   rt   r7   c               "    U R                  SUS9$ )Ncum_maxrn   rp   rr   s     r4   r   ArrowExpr.cum_max   rt   r7   c               "    U R                  SUS9$ )Ncum_prodrn   rp   rr   s     r4   r   ArrowExpr.cum_prod   s    !!*g!>>r7   c               "    U R                  SXS9$ )Nrank)methodr|   rp   )r,   r   r|   s      r4   r   ArrowExpr.rank   s    !!&!OOr7   )	r'   r(   r#   r*   r$   r&   r%   r+   r)   )r-   z'EvalSeries[ArrowDataFrame, ArrowSeries]r.   intr/   strr0   EvalNames[ArrowDataFrame]r1   zAliasNames | Noner2   ztuple[int, ...]r3   r   r   zdict[str, Any] | Noner    zImplementation | NonerL   None)
rM   
type[Self]rG   r   rN   r   r/   r   rL   r   )rM   r   rU   r   rN   r   rL   r   )rL   r   )rL   r   )rg   boolrL   zdict[str, Any])ro   r   rL   r   )rw   r   rL   r   )r   zSequence[str]r   zSequence[str] | NonerL   r   )r   r   r|   r   rL   r   )__name__
__module____qualname____firstlineno__r   PYARROWr   __annotations__r5   classmethodrO   r]   ra   re   rj   rm   rv   r   r   r   r   r   r   r   ewm_mean__static_attributes__rd   r7   r4   r   r       sY   &4&<&<O^< .204353 	3
 3  93 .3 )3 3 +3 .3 
30   #
#
8#

 #
 #
 
#
 #
J 

*-
8D
	
 
4
 - ).F!%F	F
>05
n@>>?P  Hr7   r   r   )&
__future__r   typingr   r   r   pyarrow.computecomputer   r\   r   narwhals._compliantr	   narwhals._expression_parsingr
   r   narwhals.exceptionsr   narwhals.utilsr   r   r   typing_extensionsr   narwhals._arrow.dataframer   r`   r   narwhals._compliant.typingr   r   r   r   narwhals.typingr   r   r   r   rd   r7   r4   <module>r      sf    "      . ) J 7 3 ) 9 *&885459*&+v!	*K78 v!r7   