
    h3              
         % S SK Jr  S SKrS SK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  S SKJr  S SKJr  S SKJr  S SKJr  \(       a"  S SK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 r(S\)S'   Sr*S\)S'    " S S\\\\SS 4   5      r+ " S! S"\\\\S 4   5      r, " S# S$\\\\4   \5      r-g)%    )annotationsN)reduce)TYPE_CHECKING)Any)Literal)Sequence)CompliantThen)EagerNamespace)	EagerWhen)combine_alias_output_names)combine_evaluate_output_namesPandasLikeDataFramePandasLikeExpr)PandasSelectorNamespacePandasLikeSeries)align_series_full_broadcast)import_dtypes_module)NDFrameT)DType)NonNestedLiteral)Implementation)Versionz
Literal[0]VERTICAL   z
Literal[1]
HORIZONTALc                  ,   \ rS rSr\SS j5       r\SS j5       r\SS j5       r\SS j5       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SS jr\S 5       rSS jrS S jrSS jrS!S jr        S"S jrSrg)#PandasLikeNamespace$   c                    [         $ Nr   selfs    Q/var/www/html/env/lib/python3.13/site-packages/narwhals/_pandas_like/namespace.py
_dataframePandasLikeNamespace._dataframe-   s    ""    c                    [         $ r#   r   r$   s    r&   _exprPandasLikeNamespace._expr1   s    r)   c                    [         $ r#   r   r$   s    r&   _seriesPandasLikeNamespace._series5   s    r)   c                .    [         R                  " U 5      $ r#   )r   from_namespacer$   s    r&   	selectorsPandasLikeNamespace.selectors9   s    &55d;;r)   c                (    Xl         X l        X0l        g r#   )_implementation_backend_version_version)r%   implementationbackend_versionversions       r&   __init__PandasLikeNamespace.__init__>   s      . /r)   c                   ^ ^^^ SUU U4S jjm[        U4S jSSS S T R                  T R                  T R                  S9$ )Nc                   > TR                   R                  T/SU R                  R                  SS TS9nT(       a  UR	                  T5      $ U$ )Nliteralr   r   datanameindexcontext)r.   from_iterable_native_framerC   cast)dfpandas_seriesdtyper%   values     r&   _lit_pandas_series3PandasLikeNamespace.lit.<locals>._lit_pandas_seriesK   sY     LL66W&&,,Qq1	 7 M $))%00  r)   c                   > T" U 5      /$ r#    )rH   rL   s    r&   <lambda>)PandasLikeNamespace.lit.<locals>.<lambda>W   s    *2./r)   r   litc                    S/$ )Nr?   rO   _dfs    r&   rP   rQ   Z   s    ykr)   depthfunction_nameevaluate_output_namesalias_output_namesr8   r9   r:   )rH   r   returnr   r   r5   r6   r7   )r%   rK   rJ   rL   s   ```@r&   rR   PandasLikeNamespace.litH   sD    		! 		! /"9#// 11MM	
 		
r)   c                j   ^  [        U 4S jSSS S T R                  T R                  T R                  S9$ )Nc                h   > TR                   R                  [        U R                  5      /SS/TS9/$ )Nlenr   )rB   rC   rD   )r.   rE   r`   rF   )rH   r%   s    r&   rP   )PandasLikeNamespace.len.<locals>.<lambda>c   s8    **))*+%sD + r)   r   r`   c                    S/$ )Nr`   rO   rT   s    r&   rP   ra   j   s    ugr)   rV   r\   r$   s   `r&   r`   PandasLikeNamespace.lena   s<    
 "5#// 11MM
 	
r)   c           	        ^ SU4S jjnU R                   R                  U[        S T 5       5      S-   S[        T6 [	        T6 U S9$ )Nc                   > T VVs/ s H  o" U 5        H  o"PM     M     nnn[        U6 nS U 5       n[        [        R                  U5      /$ s  snnf )Nc              3  F   #    U  H  oR                  S SS5      v   M     g7f)r   N	fill_null.0ss     r&   	<genexpr>CPandasLikeNamespace.sum_horizontal.<locals>.func.<locals>.<genexpr>v   s     HA[[D$77s   !r   r   operatoradd)rH   r+   rk   seriesnative_seriesexprss        r&   func0PandasLikeNamespace.sum_horizontal.<locals>.funcs   sP    %*>UEE"IqaIaUF>0&9FHHM8<<788 ?s   Ac              3  8   #    U  H  oR                   v   M     g 7fr#   _depthrj   xs     r&   rl   5PandasLikeNamespace.sum_horizontal.<locals>.<genexpr>{        .1hh   r   sum_horizontalrt   rW   rX   rY   rZ   rD   rH   r   r[   zlist[PandasLikeSeries]r+   _from_callablemaxr   r   r%   rs   rt   s    ` r&   r~   "PandasLikeNamespace.sum_horizontalr   sR    	9 zz((...2*"?"G95A ) 
 	
r)   c           	        ^ SU4S jjnU R                   R                  U[        S T 5       5      S-   S[        T6 [	        T6 U S9$ )Nc                `   >^  [        U 4S jT 5       6 n[        [        R                  U5      /$ )Nc              3  D   >#    U  H  o" T5        H  o"v   M     M     g 7fr#   rO   rj   r+   rk   rH   s      r&   rl   CPandasLikeNamespace.all_horizontal.<locals>.func.<locals>.<genexpr>        :b	1!	!    )r   r   ro   and_rH   rq   rs   s   ` r&   rt   0PandasLikeNamespace.all_horizontal.<locals>.func   s+    0::F 8==&122r)   c              3  8   #    U  H  oR                   v   M     g 7fr#   rw   ry   s     r&   rl   5PandasLikeNamespace.all_horizontal.<locals>.<genexpr>   r|   r}   r   all_horizontalr   r   r   r   s    ` r&   r   "PandasLikeNamespace.all_horizontal   sR    	3 zz((...2*"?"G95A ) 
 	
r)   c           	        ^ SU4S jjnU R                   R                  U[        S T 5       5      S-   S[        T6 [	        T6 U S9$ )Nc                `   >^  [        U 4S jT 5       6 n[        [        R                  U5      /$ )Nc              3  D   >#    U  H  o" T5        H  o"v   M     M     g 7fr#   rO   r   s      r&   rl   CPandasLikeNamespace.any_horizontal.<locals>.func.<locals>.<genexpr>   r   r   )r   r   ro   or_r   s   ` r&   rt   0PandasLikeNamespace.any_horizontal.<locals>.func   s+    0::F 8<<011r)   c              3  8   #    U  H  oR                   v   M     g 7fr#   rw   ry   s     r&   rl   5PandasLikeNamespace.any_horizontal.<locals>.<genexpr>   r|   r}   r   any_horizontalr   r   r   r   s    ` r&   r   "PandasLikeNamespace.any_horizontal   sR    	2 zz((...2*"?"G95A ) 
 	
r)   c           	        ^ SU4S jjnU R                   R                  U[        S T 5       5      S-   S[        T6 [	        T6 U S9$ )Nc                   > T VVs/ s H  o" U 5        H  o"PM     M     nnn[        S U 5       6 n[        S U 5       6 n[        [        R                  U5      [        [        R                  U5      -  /$ s  snnf )Nc              3  B   #    U  H  oR                  S SSS9v   M     g7f)r   N)strategylimitrg   ri   s     r&   rl   DPandasLikeNamespace.mean_horizontal.<locals>.func.<locals>.<genexpr>   s     R\++a$d+;\s   c              3  H   #    U  H  nS UR                  5       -
  v   M     g7f)r   Nis_nullri   s     r&   rl   r      s     2YLq1qyy{?Ls    "rn   )rH   r+   rk   expr_resultsrq   non_nars   s         r&   rt   1PandasLikeNamespace.mean_horizontal.<locals>.func   sq    +0D5%%)QA)A5LD0R\RF 12YL2YZF8<<06(,,3OOPP Es   A8c              3  8   #    U  H  oR                   v   M     g 7fr#   rw   ry   s     r&   rl   6PandasLikeNamespace.mean_horizontal.<locals>.<genexpr>   r|   r}   r   mean_horizontalr   r   r   r   s    ` r&   r   #PandasLikeNamespace.mean_horizontal   sS    	Q zz((...2+"?"G95A ) 
 	
r)   c           	        ^ ^ SUU 4S jjnT R                   R                  U[        S T 5       5      S-   S[        T6 [	        T6 T S9$ )Nc                J  > T VVs/ s H  o" U 5        H  o"PM     M     nnn[        U6 n[        TR                  S U 5       SS9R                  R	                  SS9TR
                  TR                  TR                  S9R                  US   R                  5      /$ s  snnf )Nc              3  @   #    U  H  oR                  5       v   M     g 7fr#   to_frameri   s     r&   rl   CPandasLikeNamespace.min_horizontal.<locals>.func.<locals>.<genexpr>        6v!v   
horizontalhowr   axisr8   r9   r:   r   )
r   r   concatrF   minr5   r6   r7   aliasrB   rH   r+   rk   rq   rs   r%   s       r&   rt   0PandasLikeNamespace.min_horizontal.<locals>.func       %*>UEE"IqaIaUF>0&9F !KK6v6L   #mCCQCK#'#7#7$($9$9 MM %q	'	 	 ?   Bc              3  8   #    U  H  oR                   v   M     g 7fr#   rw   ry   s     r&   rl   5PandasLikeNamespace.min_horizontal.<locals>.<genexpr>   r|   r}   r   min_horizontalr   r   r   r   s   `` r&   r   "PandasLikeNamespace.min_horizontal   W    	 	 zz((...2*"?"G95A ) 
 	
r)   c           	        ^ ^ SUU 4S jjnT R                   R                  U[        S T 5       5      S-   S[        T6 [	        T6 T S9$ )Nc                J  > T VVs/ s H  o" U 5        H  o"PM     M     nnn[        U6 n[        TR                  S U 5       SS9R                  R	                  SS9TR
                  TR                  TR                  S9R                  US   R                  5      /$ s  snnf )Nc              3  @   #    U  H  oR                  5       v   M     g 7fr#   r   ri   s     r&   rl   CPandasLikeNamespace.max_horizontal.<locals>.func.<locals>.<genexpr>   r   r   r   r   r   r   r   r   )
r   r   r   rF   r   r5   r6   r7   r   rB   r   s       r&   rt   0PandasLikeNamespace.max_horizontal.<locals>.func   r   r   c              3  8   #    U  H  oR                   v   M     g 7fr#   rw   ry   s     r&   rl   5PandasLikeNamespace.max_horizontal.<locals>.<genexpr>   r|   r}   r   max_horizontalr   r   r   r   s   `` r&   r   "PandasLikeNamespace.max_horizontal   r   r)   c                    [         (       a  SSKnUR                  $ U R                  R	                  5       R                  $ )z0Return the **native** equivalent of `pd.concat`.r   N)r   pandasr   r5   to_native_namespace)r%   pds     r&   _concatPandasLikeNamespace._concat   s1     =99##779@@@r)   c                   U R                   R                  5       (       aK  U R                  S:  a;  U R                  S:  a  U R                  U[        SSS9$ U R                  U[        SS9$ U R                  U[        S9$ )N   )r   F)r   copysortr   r   r   )r5   	is_pandasr6   r   r   r%   dfss     r&   _concat_diagonal$PandasLikeNamespace._concat_diagonal   sq    ))++0E0E0L$$t+||ChU|OO<<(<??||Ch|//r)   c                  U R                   R                  5       (       aM  [        R                  " 5          [        R                  " SS[
        S9  U R                  U[        S9sS S S 5        $ U R                   R                  5       (       a%  U R                  S:  a  U R                  U[        SS9$ U R                  U[        S9$ ! , (       d  f       N"= f)NignorezDThe behavior of array concatenation with empty entries is deprecated)messagecategoryr   r   Fr   )
r5   is_cudfwarningscatch_warningsfilterwarningsFutureWarningr   r   r   r6   r   s     r&   _concat_horizontal&PandasLikeNamespace._concat_horizontal   s    ''))((*''b*
 ||Cj|9 +* !!++--$2G2G$2N<<*5<AA||Cj|11 +*s   .C
Cc                  US   R                   n[        USS  SS9 Hs  u  p4UR                   n[        U5      [        U5      :X  a  XR:H  R                  5       (       a  MB  SUR	                  5        SU SUR	                  5        S3n[        U5      e   U R                  R                  5       (       a%  U R                  S:  a  U R                  U[        S	S
9$ U R                  U[        S9$ )Nr   r   )startz>unable to vstack, column names don't match:
   - dataframe 0: z
   - dataframe z: 
r   Fr   r   )columns	enumerater`   allto_list	TypeErrorr5   r   r6   r   r   )r%   r   cols_0irH   cols_currentmsgs          r&   _concat_vertical$PandasLikeNamespace._concat_vertical  s    Qs12wa0EA::L\"c&k18N7S7S7U7U))/)9(: ;&&'S<+?+?+A*B"F 
  n$ 1 ))++0E0E0L<<(<??||Ch|//r)   c                (    [         R                  XS9$ )N)rD   )
PandasWhen	from_expr)r%   	predicates     r&   whenPandasLikeNamespace.when  s    ##I#<<r)   c          	        ^ ^^^^ [        T R                  5      mSUUUU U4S jjnT R                  R                  U[	        S T 5       5      S-   S[        T6 [        T6 T S9$ )Nc                r  >^ T VVs/ s H  o" U 5        H  o"PM     M     nnn[        U4S jU 5       6 n[        S U 5       6 nT(       d>  [        [        R                  U5      n[        U4S jU5      R	                  U) S 5      nU/$ [        XE5       VVs/ s H  u  p(UR	                  U) S5      PM     snntpU	R                  T/[        U	5      -  SU	R                  R                  TS9mU4S jUS S  5       n[        [        R                  S	 [        X5       5       U	5      nU/$ s  snnf s  snnf )
Nc              3  `   >#    U  H#  oR                  TR                  5       5      v   M%     g 7fr#   )rG   String)rj   rk   dtypess     r&   rl   ?PandasLikeNamespace.concat_str.<locals>.func.<locals>.<genexpr>#  s!     @<a&&))<s   +.c              3  @   #    U  H  oR                  5       v   M     g 7fr#   r   ri   s     r&   rl   r  %  s     5X<aiikk<r   c                   > U T-   U-   $ r#   rO   )rz   y	separators     r&   rP   >PandasLikeNamespace.concat_str.<locals>.func.<locals>.<lambda>)  s    Q]Q->r)    sepr@   c              3  J   >#    U  H  nTR                  U) S 5      v   M     g7f)r  N)zip_with)rj   nm	sep_arrays     r&   rl   r  7  s#     SNbi00"b99Ns    #c              3  .   #    U  H  u  pX-   v   M     g 7fr#   rO   )rj   rk   vs      r&   rl   r  :  s     ?'>tqQU'>s   )r   r   ro   r   r  ziprE   r`   nativerC   rp   )rH   r+   rk   r   rq   	null_masknull_mask_resultresultr  
init_valuevalues
separatorsr  r  rs   ignore_nullsr%   r
  s               @r&   rt   ,PandasLikeNamespace.concat_str.<locals>.func   s9   +0D5%%)QA)A5LD0@<@F 45X<5XYI#)(,,	#B  >GPP%%t* 8O! 695K'5KEAAJJsB'5K'#
 '44#s:6$++11 	 5 	 TIcrNS
LL?s:'>? 8O; E's   D-D3c              3  8   #    U  H  oR                   v   M     g 7fr#   rw   ry   s     r&   rl   1PandasLikeNamespace.concat_str.<locals>.<genexpr>B  r|   r}   r   
concat_strr   r   )r   r7   r+   r   r   r   r   )r%   r
  r  rs   rt   r  s   ```` @r&   r!  PandasLikeNamespace.concat_str  sh     &dmm4	 	@ zz((...2&"?"G95A ) 
 	
r)   )r6   r5   r7   N)r[   ztype[PandasLikeDataFrame])r[   ztype[PandasLikeExpr])r[   ztype[PandasLikeSeries])r[   r   )r8   r   r9   ztuple[int, ...]r:   r   r[   None)rK   r   rJ   zDType | type[DType] | Noner[   r   )r[   r   )rs   r   r[   r   )r   zSequence[pd.DataFrame]r[   pd.DataFrame)r   zSequence[NDFrameT]r[   r$  )r   r   r[   r   )rs   r   r
  strr  boolr[   r   )__name__
__module____qualname____firstlineno__propertyr'   r+   r.   r2   r;   rR   r`   r~   r   r   r   r   r   r   r   r   r   r   r!  __static_attributes__rO   r)   r&   r    r    $   s    # #       < < &  )  	 
 
 
%
.H
	
2
"
 
 
 
$
2
2 A A020"=/
/
 /
 	/

 
/
r)   r    r$  pd.Series[Any]c                  B    \ rS rSr\SS j5       r        SS jrSrg)r   iJ  c                    [         $ r#   )
PandasThenr$   s    r&   _thenPandasWhen._thenM  s    r)   c               L    Uc  UR                  U5      $ UR                  X5      $ r#   )where)r%   r   then	otherwises       r&   _if_then_elsePandasWhen._if_then_elseQ  s&     $-#4tzz$U$**T:UUr)   rO   N)r[   ztype[PandasThen])r   r-  r5  r-  r6  z!pd.Series[Any] | NonNestedLiteralr[   r-  )r'  r(  r)  r*  r+  r1  r7  r,  rO   r)   r&   r   r   J  sF      VV V 5	V 
Vr)   r   c                      \ rS rSrSrg)r0  i[  rO   N)r'  r(  r)  r*  r,  rO   r)   r&   r0  r0  [  s    r)   r0  ).
__future__r   ro   r   	functoolsr   typingr   r   r   r   narwhals._compliantr	   r
   r   narwhals._expression_parsingr   r   narwhals._pandas_like.dataframer   narwhals._pandas_like.exprr   narwhals._pandas_like.selectorsr   narwhals._pandas_like.seriesr   narwhals._pandas_like.utilsr   narwhals.utilsr   r   r   narwhals._pandas_like.typingr   narwhals.dtypesr   narwhals.typingr   r   r   r   __annotations__r   r    r   r0  rO   r)   r&   <module>rI     s    "         - . ) C F ? 5 C 9 C /5%0-&* 
J c
		c
L	V!#3^EUUVV"%'7GH.r)   