
    Lpj9                       S SK Jr  S SKrS SKJrJrJr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JrJrJrJrJrJrJr  S S	KJr  S S
KJrJrJrJ r J!r!  \(       a~  S SK"J#r#J$r$J%r%  S SK&J's  J(r)  S SK*J+r+  S SK,J-r-  S SK.J/r/J0r0J1r1J2r2  S SK3J4r4  S SK5J6r6  S SK7J8r8  S SKJ9r9  S SK:J;r;J<r<J=r=  \" S\)R|                  S9r?\2\4\)R|                  4   r@\-\)R|                     rA " S S\S   5      rBg)    )annotationsN)TYPE_CHECKINGAnyTypeVarcastIbisExprDateTimeNamespaceIbisExprListNamespaceIbisExprStringNamespaceIbisExprStructNamespace)
IntoColumnasc_nulls_firstasc_nulls_lastdesc_nulls_firstdesc_nulls_lastis_floatinglitnarwhals_to_native_dtype)SQLExpr)
NO_DEFAULTImplementationVersionextend_boolnot_implemented)CallableIteratorSequence)Self)WindowInputs)
AliasNames	EvalNames
EvalSeriesWindowFunction)IbisLazyFrameIbisNamespace)	NoDefault)_LimitedContext)	IntoDType
RankMethodRollingInterpolationMethodExprT)boundc                     \ rS rSr\R
                  r S(\R
                  S.             S)S jjjr\S*S j5       r	    S+SSS.               S,S jjjr
S-S jrS-S	 jrS.S
 jrS/S jrS0S jr\SSS.       S1S jj5       r\        S2S j5       r\S3S j5       rS4S jr S(     S5S jjr\S6S j5       rS0S jrS0S jr      S7S jrS8S jrS0S jrS0S jrS0S jrS0S jrS0S jr S9S jr!S:S jr"S;S jr#S0S  jr$S<S! jr%          S=S" jr&\S>S# j5       r'\S?S$ j5       r(\S@S% j5       r)\SAS& j5       r*\+" 5       r,\+" 5       r-\+" 5       r.\+" 5       r/\+" 5       r0S'r1g)BIbisExpr7   N)implementationc               @    Xl         X0l        X@l        XPl        X l        g N)_call_evaluate_output_names_alias_output_names_version_window_function)selfcallwindow_functionevaluate_output_namesalias_output_namesversionr4   s          O/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/narwhals/_ibis/expr.py__init__IbisExpr.__init__:   s      
&;##5 ;J    c                J   ^        SU 4S jjnT R                   =(       d    U$ )Nc                   > T" U 5       Vs/ s HH  nUR                  [        R                  " UR                  TR                  " UR
                  6 S95      PMJ     sn$ s  snf )Ngroup_byorder_by)overibiswindowpartition_by_sortrJ   )dfwindow_inputsexprr<   s      rB   default_window_func5IbisExpr.window_function.<locals>.default_window_funcL   sb     !H %D 		KK!.!;!;!%]-C-C!D %  s   AA)rP   r'   rQ   IbisWindowInputsreturnzSequence[ir.Value])r;   )r<   rS   s   ` rB   r>   IbisExpr.window_functionJ   s4    		.>		 $$;(;;rE   
descending
nulls_lastc          
         Ub
  Ub  U* US.nOUb  SU0nOUb  SU* 0nO0 nU=(       d    Sn	U=(       d    Sn
[         R                  " SUU R                  " X9U
S.6S.UD6nUR                  U5      $ )N)	preceding	followingr]   r\   FrX   rH    )rL   rM   rO   rK   )r<   rR   rN   rJ   
rows_startrows_endrY   rZ   rows_betweendesclastrM   s               rB   _window_expressionIbisExpr._window_expression[   s     !h&:*48LL!'2L#'*5LL"U"U 
!ZZtL
 

 yy  rE   c                P    [        SU5      R                  U R                  " U6 SS9$ N	ir.ColumnT)rJ   include_null)r   firstrO   r<   rR   rJ   s      rB   _firstIbisExpr._firstw   s/    K&,,ZZ* - 
 	
rE   c                P    [        SU5      R                  U R                  " U6 SS9$ rg   )r   rc   rO   rk   s      rB   _lastIbisExpr._last|   s/    K&++ZZ* , 
 	
rE   c               f    [        SU5      nU(       a  UR                  5       $ UR                  SS9$ )Nrh   T)ri   )r   	arbitraryrj   )r<   rR   ignore_nullss      rB   
_any_valueIbisExpr._any_value   s/     K&#/t~~RTZZTZ5RRrE   c                .    SSK Jn  U" U R                  S9$ )Nr   r(   )rA   )narwhals._ibis.namespacer)   r:   )r<   r)   s     rB   __narwhals_namespace__IbisExpr.__narwhals_namespace__   s    :T]]33rE   c                    U $ r6   r^   r<   s    rB   	broadcastIbisExpr.broadcast   s    rE   Fc              '     #    [        U5      n[        X5      n [        X5      n[        [        [        [
        S.n[        X USS9 H  u  pVnXFU4   " U5      v   M     g 7f)N))FF)FT)TF)TTT)strict)lenr   r   r   r   r   zip)rY   rZ   colsnmappingcol_desc_nulls_lasts           rB   rO   IbisExpr._sort   sf      I /
 /
+)+)	
 (+4ZPT'U#C+./44 (Vs   AAc              :   ^ SU4S jjnU " UTS UR                   S9$ )Nc                X   > T" U 5       Vs/ s H  oR                   U   PM     sn$ s  snf r6   native)rP   nameevaluate_column_namess     rB   func(IbisExpr.from_column_names.<locals>.func   s(    0Eb0IJ0IIIdO0IJJJs   'r?   r@   rA   rP   r'   rV   zSequence[ir.Column])r:   )clsr   contextr   s    `  rB   from_column_namesIbisExpr.from_column_names   s*    	K "7#$$	
 	
rE   c               X   ^ SU4S jjnU " UU R                  T5      S UR                  S9$ )Nc                L   > T Vs/ s H  oR                   U   PM     sn$ s  snf r6   r   )rP   icolumn_indicess     rB   r   *IbisExpr.from_column_indices.<locals>.func   s!    *89.QIIaL.999s   !r   r   )_eval_names_indicesr:   )r   r   r   r   s     ` rB   from_column_indicesIbisExpr.from_column_indices   s4    	: "%"9"9."I#$$	
 	
rE   c                &    U R                  USU0S9$ )Notherexpression_args_with_callable)r<   opr   s      rB   _with_binaryIbisExpr._with_binary   s    ""27G"HHrE   c                    U R                  XS9$ )Nr   r   )r<   r   r   s      rB   _with_elementwiseIbisExpr._with_elementwise   s     ""2"GGrE   c               8    [        SUR                  U5      5      $ )Nr/   )r   r   )r   rR   r   s      rB   _alias_nativeIbisExpr._alias_native   s    GTYYt_--rE   c                X    [        S[        R                  5      nU R                  U5      $ NCallable[..., ir.Value])r   operatorinvertr   )r<   r   s     rB   
__invert__IbisExpr.__invert__   s$    /A""6**rE   c                X    [        S[        R                  5      nU R                  U5      $ r   )r   r   negr   )r<   r   s     rB   __neg__IbisExpr.__neg__   s$    ,hll;""3''rE   c                T   ^ US:w  a  Sn[        U5      eU R                  U4S j5      $ )NlinearzBOnly linear interpolation methods are supported for Ibis quantile.c                &   > U R                  T5      $ r6   )quantile)rR   r   s    rB   <lambda>#IbisExpr.quantile.<locals>.<lambda>   s    h0GrE   NotImplementedErrorr   )r<   r   interpolationmsgs    `  rB   r   IbisExpr.quantile   s/     H$VC%c**""#GHHrE   c                6   ^ SU4S jjnU R                  U5      $ )Nc           	        > [        SU 5      n[        R                  " U [        S5      :  [        [	        S5      5      4U [        S5      :H  [        [	        S5      5      4UR                  [        T5      5      S9$ )Nir.NumericValuer   nanz-inf)else_)r   rL   casesr   floatlog)rR   numeric_exprbases     rB   _logIbisExpr.log.<locals>._log   se     148L::AE%L 12QU6]!34"&&s4y1 rE   rR   ir.ValuerV   r   )r   )r<   r   r   s    ` rB   r   IbisExpr.log   s    	 %%d++rE   c                &    U R                  S 5      $ )Nc                ~    U R                  5       U R                  5       R                  5       R                  S5      -   $ )Nint8)nuniqueisnullanyr   rR   s    rB   r   #IbisExpr.n_unique.<locals>.<lambda>   s)    $++-*;*;*=*B*B6*JJrE   r   r{   s    rB   n_uniqueIbisExpr.n_unique   s    ""J
 	
rE   c                t   ^  SU 4S jjnT R                  UT R                  T R                  T R                  S9$ )Nc                   > TR                  U 5       Vs/ s H  oR                  R                  5       PM     sn$ s  snf r6   )r8   r   count)rP   _r<   s     rB   r   IbisExpr.len.<locals>.func   s1    /3/J/J2/NO/N!IIOO%/NOOOs   #;r   )rP   r'   rV   zSequence[ir.IntegerScalar])	__class__r8   r9   r:   r<   r   s   ` rB   r   IbisExpr.len   s=    	P ~~"&"="=#77MM	  
 	
rE   c                &    U R                  S 5      $ )Nc                >    U R                  5       R                  5       $ r6   )r   sumr   s    rB   r   %IbisExpr.null_count.<locals>.<lambda>   s    0A0A0CrE   r   r{   s    rB   
null_countIbisExpr.null_count   s    ""#CDDrE   c                .    SS jnU R                  U5      $ )Nc                    [        U R                  5       5      (       a  U R                  5       OSn[        R                  " U R                  5       S U5      $ )NF)r   typeisnanrL   ifelser   )rR   	otherwises     rB   r   IbisExpr.is_nan.<locals>.func   s8    (3DIIK(@(@

eI;;t{{}dI>>rE   )rR   ir.FloatingValuerV   r   r   r   s     rB   is_nanIbisExpr.is_nan   s    	? ""4((rE   c                .    SS jnU R                  U5      $ )Nc                    [        U R                  5       5      (       a.  [        SU 5      n U R                  5       U R	                  5       -  ) $ [
        R                  " U R                  5       S [        S5      5      $ )Nr   T)	r   r   r   isinfr   rL   r   r   r   r   s    rB   r    IbisExpr.is_finite.<locals>.func  sW    499;''.5

455;;t{{}dCI>>rE   )rR   z"ir.IntegerValue | ir.FloatingValuerV   r   r   r   s     rB   	is_finiteIbisExpr.is_finite  s    	? ""4((rE   c                n   ^ U Vs/ s H	  o"c  M  UPM     snmSU4S jjnU R                  U5      $ s  snf )Nc                n   > [         R                  " U R                  5       S U R                  T5      5      $ r6   )rL   r   r   isin)rR   valuess    rB   r   IbisExpr.is_in.<locals>.func  s%    ;;t{{}dDIIf4EFFrE   r   r   )r<   r   vr   r   s       @rB   is_inIbisExpr.is_in  s5    "4U!U4	G ""4(( 5s   22c                z    Ub  Sn[        U5      eUb  Sn[        U5      eSS jnUc   eU R                  USU0S9$ )Nz0`strategy` is not supported for the Ibis backendz-`limit` is not supported for the Ibis backendvaluec                $    U R                  U5      $ r6   )	fill_null)rR   r  s     rB   
_fill_null&IbisExpr.fill_null.<locals>._fill_null  s    >>%((rE   r   )rR   r   r  z	ir.ScalarrV   r   r   )r<   r  strategylimitr   r  s         rB   r  IbisExpr.fill_null  s^     DC%c**AC%c**	)    "":?O"PPrE   c                :   ^ ^ SUU 4S jjnT R                  U5      $ )Nc                R   > [        TTR                  5      nU R                  U5      $ r6   )r   r:   r   )rR   native_dtypedtyper<   s     rB   _funcIbisExpr.cast.<locals>._func&  s"    3E4==IL99\**rE   rR   rh   rV   r   r   )r<   r  r  s   `` rB   r   IbisExpr.cast%  s     	+ 	+
 ""5))rE   c                &    U R                  S 5      $ )Nc                    U R                  5       R                  5       R                  [        R                  " U S95      S:H  $ )NrI      )r   r   rK   rL   rM   r   s    rB   r   $IbisExpr.is_unique.<locals>.<lambda>/  s-    ,,.33DKK$4PQUVVrE   r   r{   s    rB   	is_uniqueIbisExpr.is_unique-  s    ""V
 	
rE   c               T   ^ ^^^ SUUU 4S jjmSUU 4S jjnT R                  TU5      $ )Nc                  > [        T	R                  U TSS95      n[        R                  " US9nTS:X  a  UR	                  5       nO;TS:X  a%  [        R
                  " 5       R                  U5      nOUR                  5       nU[        S5      -   nTS:X  aE  [        R                  " U /S9nU R                  5       R                  U5      nX5-   [        S5      -
  nObTS	:X  a\  [        R                  " U /S9nU R                  5       R                  U5      n[        S
U[        S5      -
  [        S5      -  5      nX6-   n[        R                  " U R                  5       U45      $ )NTrX   )rJ   denseordinalr  maxr  averager   g       @)nextrO   rL   rM   
dense_rank
row_numberrK   rankr   r   r   r   notnull)
rR   rJ   rM   rank_	partitioncntavgrY   methodr<   s
          rB   _rankIbisExpr.rank.<locals>._rank3  s%   DJJt
tJTUH[[(3F  ++-9$)..v6  CFNE  KK$8	jjl''	2c!f,9$ KK$8	jjl''	2,sSV|s3x.GH::t||~u566rE   c           	        > UR                   (       a  Sn[        U5      eT" U 5       Vs/ s H@  nT" [        SU5      5      R                  [        R
                  " UR                  S95      PMB     sn$ s  snf )NzV`rank` followed by `over` with `order_by` specified is not supported for Ibis backend.rh   r  )rJ   r   r   rK   rL   rM   rN   )rP   inputsr   rR   r+  r<   s       rB   window_fIbisExpr.rank.<locals>.window_fO  sr    n)#..
 !H	 %D d;-.33KK)<)<= %	  s   AA4r  )rP   r'   r.  zWindowInputs[ir.Value]rV   list[ir.Value]r   )r<   r*  rY   r/  r+  s   ``` @rB   r$  IbisExpr.rank2  s,    	7 	78		 		 ""5(33rE   c               0  ^ ^^^^	^
 T[         L a  Sn[        U5      eT R                  5       m
[        U5      m[        U5      n[        R
                  " TU5      m	SUUU	U
UU 4S jjnT R                  US T R                  T R                  T R                  S9$ )NzK`replace_strict` requires an explicit value for `default` for ibis backend.c                0  > U R                  T5      nT" U 5       Vs/ s H(  nT	R                  UR                  T5      TU   U5      PM*     nnT
(       a7  [        T
TR                  5      nU Vs/ s H  oUR                  U5      PM     sn$ U$ s  snf s  snf r6   )_evaluate_single_output_expr_whenr   r   r:   r   )rP   default_colrR   resultsr  resdefaultkeysmapping_exprnsreturn_dtyper<   s         rB   r   %IbisExpr.replace_strict.<locals>.funcm  s    99'BK !H$D 4,t*<kJ$  
 7dmmT:AB'3.'BBN Cs   /B/Br   )rP   r'   rV   r1  )
r   
ValueErrorrx   listrL   mapr   r8   r9   r:   )r<   r:  oldnewr>  r   r   r   r;  r<  r=  s   ``  `   @@@rB   replace_strictIbisExpr.replace_strict\  s     j _CS/!((*Cycxxf-	 	 ~~"&"="=#77MM  
 	
rE   c                    [        U 5      $ r6   r   r{   s    rB   strIbisExpr.str      &t,,rE   c                    [        U 5      $ r6   r   r{   s    rB   dtIbisExpr.dt  s    (..rE   c                    [        U 5      $ r6   r
   r{   s    rB   rA  IbisExpr.list  s    $T**rE   c                    [        U 5      $ r6   r   r{   s    rB   structIbisExpr.struct  rJ  rE   )r9   r7   r8   r:   r;   r6   )r=   z#EvalSeries[IbisLazyFrame, ir.Value]r>   zIbisWindowFunction | Noner?   EvalNames[IbisLazyFrame]r@   zAliasNames | NonerA   r   r4   r   rV   None)rV   IbisWindowFunction)r^   r^   NN)rR   r   rN   zSequence[str | ir.Value]rJ   zSequence[IntoColumn]r_   
int | Noner`   rV  rY   Sequence[bool] | NonerZ   rW  rV   r   )rR   r   rJ   rH  rV   r   )rR   r   rs   boolrV   r   )rV   r)   )rV   r!   )r   r   rY   Sequence[bool] | boolrZ   rY  rV   zIterator[ir.Column])r   z
type[Self]r   rS  r   r+   rV   r!   )r   intr   r+   rV   r!   )r   r   r   r!   rV   r!   )r   zdict[str, Self] | Noner   r   rV   r!   )rR   r/   r   rH  rV   r/   )r   r   r   r.   rV   r!   )r   r   rV   r!   )r   Sequence[Any]rV   r!   )r  zSelf | Noner	  r   r
  rV  rV   r!   )r  r,   rV   r!   )r*  r-   rY   rX  rV   r!   )
r:  zIbisExpr | NoDefaultrC  r[  rD  r[  r>  zIntoDType | NonerV   r!   )rV   r   )rV   r	   )rV   r   )rV   r   )2__name__
__module____qualname____firstlineno__r   IBIS_implementationrC   propertyr>   rd   rl   ro   rt   rx   r|   staticmethodrO   classmethodr   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r  r$  rE  rH  rL  rA  rQ  r   cum_prodskewkurtosis_count_star_push_down_window_function__static_attributes__r^   rE   rB   r2   r2   7   s   $))O
 6:K *8)<)<K1K 3K
  8K .K K 'K 
K  < <& 24)+!%#! -1,0!! /! '	!
 ! ! *! *! 
!8



S4
  -2,155)5 *5 
	5 5" 

7

 !
 

 
" 	
 	
I 37	H 0	H#H
 
H . .+(II.HI	I	,

	
E)))Q *

(4T$
%$
 $
 	$
 '$
 
$
L - - / / + + - -  H D H!#K "1!2rE   r2   )r'   r   )C
__future__r   r   typingr   r   r   r   rL   narwhals._ibis.expr_dtr	   narwhals._ibis.expr_listr   narwhals._ibis.expr_strr   narwhals._ibis.expr_structr   narwhals._ibis.utilsr   r   r   r   r   r   r   r   narwhals._sql.exprr   narwhals._utilsr   r   r   r   r   collections.abcr   r   r    ibis.expr.typesrR   typesirtyping_extensionsr!   narwhals._compliantr"   narwhals._compliant.typingr#   r$   r%   r&   narwhals._ibis.dataframer'   rw   r)   narwhals._typingr*   r+   narwhals.typingr,   r-   r.   Valuer/   rU  rU   r2   r^   rE   rB   <module>r     s    "  4 4  < : ; >	 	 	 '  <<  &0  76*/QQG288,E'rxx(?@#BHH-e3w23 e3rE   