
    h?-              
         S SK J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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%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S4   5      r. " S S \\\\S4   5      r/ " S! S"\\\\4   \5      r0g)#    )annotationsN)reduce)chain)TYPE_CHECKING)Literal)SequenceArrowDataFrame	ArrowExpr)ArrowSelectorNamespaceArrowSeries)align_series_full_broadcast)cast_to_comparable_string_types)CompliantThen)EagerNamespace)	EagerWhen)combine_alias_output_names)combine_evaluate_output_names)Implementation)import_dtypes_module)ArrayOrScalarAny)ArrowChunkedArray)
Incomplete)DType)NonNestedLiteral)Versionc                     \ rS rS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S jrSS jrSS jr\SS j5       rSS jr        S S jrSrg)!ArrowNamespace$   c                    [         $ Nr	   selfs    K/var/www/html/env/lib/python3.13/site-packages/narwhals/_arrow/namespace.py
_dataframeArrowNamespace._dataframe)   s        c                    [         $ r#   r   r$   s    r&   _exprArrowNamespace._expr-       r)   c                    [         $ r#   r   r$   s    r&   _seriesArrowNamespace._series1   s    r)   c               F    Xl         [        R                  U l        X l        g r#   )_backend_versionr   PYARROW_implementation_version)r%   backend_versionversions      r&   __init__ArrowNamespace.__init__6   s     /-55r)   c           
     `   ^  T R                  U 4S jSSS S T R                  T R                  S9$ )Nc                Z   > [         R                  " [        U R                  5      /STS9/$ )Nlen)namecontext)r   from_iterabler<   native)dfr%   s    r&   <lambda>$ArrowNamespace.len.<locals>.<lambda>>   s&    ))3ryy>*:PTUr)   r   r<   c                    S/$ )Nr<    _dfs    r&   rB   rC   C   s    ugr)   depthfunction_nameevaluate_output_namesalias_output_namesr6   r7   r+   r2   r5   r$   s   `r&   r<   ArrowNamespace.len;   s<    zz "5# 11MM  

 
	
r)   c           
     z   ^ ^^^ SUU U4S jjmT R                  U4S jSSS S T R                  T R                  S9$ )Nc                f   > [         R                  " T/STS9nT(       a  UR                  T5      $ U$ )Nliteral)datar=   r>   )r   r?   cast)_arrow_seriesdtyper%   values     r&   _lit_arrow_series-ArrowNamespace.lit.<locals>._lit_arrow_seriesL   s8    &44W9dL #((//r)   c                   > T" U 5      /$ r#   rE   )rA   rX   s    r&   rB   $ArrowNamespace.lit.<locals>.<lambda>U   s    )"-.r)   r   litc                    S/$ )NrQ   rE   rF   s    r&   rB   r[   X   s    ykr)   rH   )rT   r
   returnr   rM   )r%   rW   rV   rX   s   ```@r&   r\   ArrowNamespace.litI   sD    	  	  zz."9# 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                   >^  [         R                  " U 4S jT 5       5      n[        [        R                  [        U6 5      /$ )Nc              3  2   >#    U  H  o" T5      v   M     g 7fr#   rE   .0exprrA   s     r&   	<genexpr>>ArrowNamespace.all_horizontal.<locals>.func.<locals>.<genexpr>`        (Dedbe   )r   r?   r   operatorand_r   rA   seriesexprss   ` r&   func+ArrowNamespace.all_horizontal.<locals>.func_   s3    (((De(DDF8==*Ev*NOPPr)   c              3  8   #    U  H  oR                   v   M     g 7fr#   _depthrd   xs     r&   rf   0ArrowNamespace.all_horizontal.<locals>.<genexpr>e        .1hh      all_horizontalro   rI   rJ   rK   rL   r>   rA   r
   r^   zlist[ArrowSeries]r+   _from_callablemaxr   r   r%   rn   ro   s    ` r&   rz   ArrowNamespace.all_horizontal^   sS    	Q 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                   >^  [         R                  " U 4S jT 5       5      n[        [        R                  [        U6 5      /$ )Nc              3  2   >#    U  H  o" T5      v   M     g 7fr#   rE   rc   s     r&   rf   >ArrowNamespace.any_horizontal.<locals>.func.<locals>.<genexpr>n   rh   ri   )r   r?   r   rj   or_r   rl   s   ` r&   ro   +ArrowNamespace.any_horizontal.<locals>.funcm   s3    (((De(DDF8<<)Df)MNOOr)   c              3  8   #    U  H  oR                   v   M     g 7fr#   rr   rt   s     r&   rf   0ArrowNamespace.any_horizontal.<locals>.<genexpr>s   rw   rx   ry   any_horizontalr{   r|   r}   r   s    ` r&   r   ArrowNamespace.any_horizontall   sS    	P 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                   >^  [         R                  " U 4S jT 5       5      nS U 5       n[        [        R                  [        U6 5      /$ )Nc              3  2   >#    U  H  o" T5      v   M     g 7fr#   rE   rc   s     r&   rf   >ArrowNamespace.sum_horizontal.<locals>.func.<locals>.<genexpr>|   s     $@%$T"XX%ri   c              3  B   #    U  H  oR                  S SSS9v   M     g7fr   N)strategylimit	fill_nullrd   ss     r&   rf   r   }   s     LAkk!d$k?   )r   r?   r   rj   addr   )rA   itrm   rn   s   `  r&   ro   +ArrowNamespace.sum_horizontal.<locals>.func{   s=    $$$@%$@@BLLF8<<)Df)MNOOr)   c              3  8   #    U  H  oR                   v   M     g 7fr#   rr   rt   s     r&   rf   0ArrowNamespace.sum_horizontal.<locals>.<genexpr>   rw   rx   ry   sum_horizontalr{   r|   r}   r   s    ` r&   r   ArrowNamespace.sum_horizontalz   sS    	P
 zz((...2*"?"G95A ) 
 	
r)   c           	        ^^ [        U R                  5      mSUU4S jjnU R                  R                  U[	        S T 5       5      S-   S[        T6 [        T6 U S9$ )Nc                  >^  [        [        R                  " U 4S jT 5       5      5      n[        S U 5       6 n[        U4S jU 5       6 n[	        [
        R                  U5      [	        [
        R                  U5      -  /$ )Nc              3  2   >#    U  H  o" T5      v   M     g 7fr#   rE   rc   s     r&   rf   ?ArrowNamespace.mean_horizontal.<locals>.func.<locals>.<genexpr>   s     3ODHHri   c              3  B   #    U  H  oR                  S SSS9v   M     g7fr   r   r   s     r&   rf   r      s     R\++a$d+;\r   c              3     >#    U  H5  nS UR                  5       R                  TR                  5       5      -
  v   M7     g7f)ry   N)is_nullrS   Int64)rd   r   dtypess     r&   rf   r      s-     M1!aiik&&v||~66s   =A )listr   r?   r   r   rj   r   )rA   expr_resultsrm   non_nar   rn   s   `   r&   ro   ,ArrowNamespace.mean_horizontal.<locals>.func   sj     3 33O3O OPL0R\RF 1MMF 8<<06(,,3OOPPr)   c              3  8   #    U  H  oR                   v   M     g 7fr#   rr   rt   s     r&   rf   1ArrowNamespace.mean_horizontal.<locals>.<genexpr>   rw   rx   ry   mean_horizontalr{   r|   )r   r5   r+   r~   r   r   r   )r%   rn   ro   r   s    ` @r&   r   ArrowNamespace.mean_horizontal   sg    %dmm4	Q 	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                R  >^  [        [        R                  " U 4S jT 5       5      5      tp[        U/UQ76 tp[	        [
        R                  U Vs/ s H  o3R                  PM     snUR                  5      n[        UUR                  TR                  TR                  S9/$ s  snf )Nc              3  2   >#    U  H  o" T5      v   M     g 7fr#   rE   rc   s     r&   rf   >ArrowNamespace.min_horizontal.<locals>.func.<locals>.<genexpr>        ;WQVDHHQVri   r=   r6   r7   )r   r   r?   r   r   pcmin_element_wiser@   r   r=   r2   r5   rA   init_seriesrm   r   native_seriesrn   r%   s   `    r&   ro   +ArrowNamespace.min_horizontal.<locals>.func       #'(;(;;WQV;W(W#X K#>{#TV#T K"##%?1hh%?ASASM !$))$($9$9 MM	  &@   B$
c              3  8   #    U  H  oR                   v   M     g 7fr#   rr   rt   s     r&   rf   0ArrowNamespace.min_horizontal.<locals>.<genexpr>   rw   rx   ry   min_horizontalr{   r|   r}   r   s   `` r&   r   ArrowNamespace.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                R  >^  [        [        R                  " U 4S jT 5       5      5      tp[        U/UQ76 tp[	        [
        R                  U Vs/ s H  o3R                  PM     snUR                  5      n[        UUR                  TR                  TR                  S9/$ s  snf )Nc              3  2   >#    U  H  o" T5      v   M     g 7fr#   rE   rc   s     r&   rf   >ArrowNamespace.max_horizontal.<locals>.func.<locals>.<genexpr>   r   ri   r   )r   r   r?   r   r   r   max_element_wiser@   r   r=   r2   r5   r   s   `    r&   ro   +ArrowNamespace.max_horizontal.<locals>.func   r   r   c              3  8   #    U  H  oR                   v   M     g 7fr#   rr   rt   s     r&   rf   0ArrowNamespace.max_horizontal.<locals>.<genexpr>   rw   rx   ry   max_horizontalr{   r|   r}   r   s   `` r&   r   ArrowNamespace.max_horizontal   r   r)   c               v    U R                   S:  a  [        R                  " USS9$ [        R                  " USS9$ )N)   default)promote_optionsT)promote)r2   paconcat_tables)r%   dfss     r&   _concat_diagonalArrowNamespace._concat_diagonal   s6      E)##CCCT22r)   c                   [        [        R                  " S U 5       5      5      n[        [        R                  " S U 5       5      5      n[        R                  R                  X2S9$ )Nc              3  8   #    U  H  oR                   v   M     g 7fr#   )column_namesrd   rA   s     r&   rf   4ArrowNamespace._concat_horizontal.<locals>.<genexpr>   s     (G3R3rx   c              3  @   #    U  H  oR                  5       v   M     g 7fr#   )itercolumnsr   s     r&   rf   r      s     )ISr..*:*:Ss   )names)r   r   r?   r   Tablefrom_arrays)r%   r   r   arrayss       r&   _concat_horizontal!ArrowNamespace._concat_horizontal   sP    U(((G3(GGHe)))IS)IIJxx##F#88r)   c                   US   R                   n[        USS  SS9 H-  u  p4UR                   nXR:w  d  M  SU SU SU S3n[        U5      e   [        R                  " U5      $ )Nr   ry   )startz>unable to vstack, column names don't match:
   - dataframe 0: z
   - dataframe z: 
)r   	enumerate	TypeErrorr   r   )r%   r   cols_0irA   cols_currentmsgs          r&   _concat_verticalArrowNamespace._concat_vertical   s~    Q$$s12wa0EA??L%))/ 1&&'S<.< 
  n$ 1 $$r)   c                .    [         R                  " U 5      $ r#   )r   from_namespacer$   s    r&   	selectorsArrowNamespace.selectors   s    %44T::r)   c                (    [         R                  XS9$ )N)r>   )	ArrowWhen	from_expr)r%   	predicates     r&   whenArrowNamespace.when   s    ""9";;r)   c          	        ^ ^^^ S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                6  >^  [        [        R                  " U 4S jT 5       5      6 nUS   R                  nT	(       a  SOSn[	        S U 5       ST06u  pE[
        R                  nT
R                  U" / UQUP7SU06UT
R                  T
R                  S9nU/$ )	Nc              3  2   >#    U  H  o" T5      v   M     g 7fr#   rE   rc   s     r&   rf   :ArrowNamespace.concat_str.<locals>.func.<locals>.<genexpr>   s     %A54d2hh5ri   r   skip	emit_nullc              3  8   #    U  H  oR                   v   M     g 7fr#   )r@   r   s     r&   rf   r      s     :$9q(($9rx   	separatornull_handlingr   )
r   r   r?   r=   r   r   binary_join_element_wiser/   r2   r5   )rA   compliant_series_listr=   r  r   separator_scalar
concat_str	compliantrn   ignore_nullsr%   r  s   `       r&   ro   'ArrowNamespace.concat_str.<locals>.func   s    $?%%%A5%AA%! )+00D&K  $C:$9:$FO$ B
 &(%@%@JNBN 0NN $ 5 5	 % I ;r)   c              3  8   #    U  H  oR                   v   M     g 7fr#   rr   rt   s     r&   rf   ,ArrowNamespace.concat_str.<locals>.<genexpr>  rw   rx   ry   r  r{   r|   r}   )r%   r  r  rn   ro   s   ```` r&   r  ArrowNamespace.concat_str   sW    	 	, zz((...2&"?"G95A ) 
 	
r)   )r2   r4   r5   N)r^   ztype[ArrowDataFrame])r^   ztype[ArrowExpr])r^   ztype[ArrowSeries])r6   ztuple[int, ...]r7   r   r^   None)r^   r   )rW   r   rV   zDType | type[DType] | Noner^   r   )rn   r   r^   r   )r   zSequence[pa.Table]r^   pa.Table)r^   r   )r   r   r^   r   )rn   r   r  strr  boolr^   r   )__name__
__module____qualname____firstlineno__propertyr'   r+   r/   r8   r<   r\   rz   r   r   r   r   r   r   r   r   r   r   r  __static_attributes__rE   r)   r&   r    r    $   s    
       


%
.H
	
*



,
2
43
9
% ; ;<#
#
 #
 	#

 
#
r)   r    r  r   c                  B    \ rS rSr\SS j5       r        SS jrSrg)r   i  c                    [         $ r#   )	ArrowThenr$   s    r&   _thenArrowWhen._then  r-   r)   c                   Uc*  [         R                  " [        U5      UR                  5      OUn[        R
                  " XU5      $ r#   )r   nullsr<   typer   if_else)r%   r   then	otherwises       r&   _if_then_elseArrowWhen._if_then_else  s5     7@6GBHHSY		2Y	zz$i00r)   rE   N)r^   ztype[ArrowThen])r   r   r   r   r!  z#ArrayOrScalarAny | NonNestedLiteralr^   r   )r  r  r  r  r  r  r"  r  rE   r)   r&   r   r     s?     11  1 7	1 
1r)   r   c                      \ rS rSrSrg)r  i&  rE   N)r  r  r  r  r  rE   r)   r&   r  r  &  s    SVr)   r  )1
__future__r   rj   	functoolsr   	itertoolsr   typingr   r   r   pyarrowr   pyarrow.computecomputer   narwhals._arrow.dataframer
   narwhals._arrow.exprr   narwhals._arrow.selectorsr   narwhals._arrow.seriesr   narwhals._arrow.utilsr   r   narwhals._compliantr   r   r   narwhals._expression_parsingr   r   narwhals.utilsr   r   narwhals._arrow.typingr   r   r   narwhals.dtypesr   narwhals.typingr   r   r    r   r  rE   r)   r&   <module>r7     s    "          4 * < . = A - . ) C F ) /781%0&o
Y
<OOo
d1	.+yBUUV 1  Wnk9DEy Vr)   