
    Lpj!              	      L   S SK Jr  S SKrS SKJr  S SKJr  S SKJrJ	r	J
r
  S SKrS SKJs  Jr  S SKJr  S SKJrJr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  S SK J!r!  S SK"J#r#J$r$  \(       a  S SK%J&r&J'r'J(r(  S SK"J)r)  S SK*J+r+J,r,J-r-J.r.J/r/   " S S\!\\SS4   \\\4   5      r0g)    )annotationsN)reduce)chain)TYPE_CHECKINGAnycast)AlignDiagonal)combine_alias_output_namescombine_evaluate_output_names!evaluate_output_names_and_aliasesIbisLazyFrameIbisExpr)IbisSelectorNamespace)functionlitnarwhals_to_native_dtype)SQLNamespace)Implementationvalidate_separators)IterableMappingSequence)Version)ConcatMethodCorrelationMethod	IntoDTypeNormalizedPathPythonLiteralc                  Z   \ rS rSr% \R
                  rS\S'   SS jr\	SS j5       r
\	SS j5       r\	SS j5       rSS	.       SS
 jjrS S jrS!S jrS"S jr 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S(S jrS(S jrSrg)-IbisNamespace%   r   _implementationc                   Xl         g N_version)selfversions     T/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/narwhals/_ibis/namespace.py__init__IbisNamespace.__init__+   s        c                .    [         R                  " U 5      $ r&   )r   from_namespacer)   s    r+   	selectorsIbisNamespace.selectors.   s    $33D99r.   c                    [         $ r&   r   r1   s    r+   _exprIbisNamespace._expr2   s    r.   c                    [         $ r&   r   r1   s    r+   
_lazyframeIbisNamespace._lazyframe6   s    r.   ,)	separatorc                   [        USU5        [        R                  " U4SU0UD6nU R                  R	                  X@S9$ )N)sepr=   context)r   ibisread_csvr8   from_native)r)   sourcer;   kwdsnatives        r+   scan_csvIbisNamespace.scan_csv:   s@     	Ix6v=9==**6*@@r.   c                b    [         R                  " U40 UD6nU R                  R                  X0S9$ )Nr>   )r@   read_parquetr8   rB   )r)   rC   rD   rE   s       r+   scan_parquetIbisNamespace.scan_parquetA   s/    ""62T2**6*@@r.   c                    [        U/UQ76 $ r&   )r   )r)   nameargss      r+   	_functionIbisNamespace._functionE   s    $t$$r.   c                    [        U5      $ r&   )r   )r)   values     r+   _litIbisNamespace._litH   s    5zr.   Nc                b    Uc  [         R                  " X45      $ [         R                  " X4US9$ )N)else_)r@   cases)r)   	conditionrR   	otherwises       r+   _whenIbisNamespace._whenK   s0     ::y011zz9,I>>r.   c                (    [         R                  " U6 $ r&   )r@   coalesce)r)   exprss     r+   	_coalesceIbisNamespace._coalesceR   s    }}e$$r.   c               L  ^ [        U5      nUS:X  a  U R                  U5      n [        R                  " S U 5       6 nUS   R                  U5      $ ! [        R                   a<    US   R
                  m[        U4S jUSS   5       5      (       d  Sn[        U5      S ee f = f)Ndiagonalc              3  8   #    U  H  oR                   v   M     g 7fr&   )rE   ).0lfs     r+   	<genexpr>'IbisNamespace.concat.<locals>.<genexpr>\   s     !=f))fs   r   c              3  @   >#    U  H  oR                   T:H  v   M     g 7fr&   )schema)rd   xfirsts     r+   rf   rg   _   s     =*Qxx5(*s      z&inputs should all have the same schema)	tuplealign_diagonalr@   union	IbisErrorri   all	TypeError_with_native)r)   itemshowframesresultmsgrk   s         @r+   concatIbisNamespace.concatU   s     +0,*((0F	ZZ!=f!=>F ay%%f-- ~~ 	1I$$E=&*===>n$.	s   A AB#c               l   ^^^ SUUU4S jjnU R                  U[        T6 [        T6 U R                  S9$ )Nc                  >^  [         R                  " U 4S jT 5       5      nU Vs/ s H  o"R                  S5      PM     nnT(       a  [        T5      R	                  U5      nU/$ [        U4S jUSS  US   5      nU/$ s  snf )Nc              3  2   >#    U  H  o" T5      v   M     g 7fr&    )rd   exprdfs     r+   rf   9IbisNamespace.concat_str.<locals>.func.<locals>.<genexpr>i   s     &BEDtBxxEs   stringc                (   > U R                  TU5      $ r&   )ry   )acccolr;   s     r+   <lambda>8IbisNamespace.concat_str.<locals>.func.<locals>.<lambda>p   s    SZZ	3%?r.   rl   r   )r   from_iterabler   r   joinr   )r   colsscols_castedrw   r^   ignore_nullsr;   s   `    r+   func&IbisNamespace.concat_str.<locals>.funch   s    &&&BE&BBD59:T66(+TK:Y,,[9 8O  ?ON 8O ;s   Bcallevaluate_output_namesalias_output_namesr*   r   r   returnlist[ir.Value]r5   r   r
   r(   )r)   r;   r   r^   r   s    ``` r+   
concat_strIbisNamespace.concat_stre   s?    	 	 zz"?"G95AMM	  
 	
r.   c                F    SS jnU R                   R                  " U/UQ76 $ )Nc                    [        U 5      n [        [        R                  S U  5       5      n[        [        R                  S U  5       5      nX-  $ )Nc           	   3  j   #    U  H)  n[        S UR                  [        S5      5      5      v   M+     g7f)ir.NumericValuer   N)r   	fill_nullr   rd   r   s     r+   rf   >IbisNamespace.mean_horizontal.<locals>.func.<locals>.<genexpr>   s(     P4C's1v)>??4s   13c           
   3     #    U  HA  n[        S UR                  5       R                  [        S5      [        S5      5      5      v   MC     g7f)r   r   rl   N)r   isnullifelser   r   s     r+   rf   r      s=      # *CJJL,?,?AA,OPP#s   A	A)listr   operatoradd)r   	numeratordenominators      r+   r   +IbisNamespace.mean_horizontal.<locals>.func   sO    :DP4PI !#K **r.   )r   zIterable[ir.Value]r   ir.Value)r5   _from_elementwise_horizontal_op)r)   r^   r   s      r+   mean_horizontalIbisNamespace.mean_horizontal~   s#    	+ zz99$GGGr.   c                V   ^ ^^ SUU U4S jjnT R                  US S T R                  S9$ )Nc                   > T(       a  [        TTR                  5      OS n[        T[        5      (       d  [	        TU5      /$ T(       a  [
        R                  " TUS9/$ Sn[        U5      e)N)typez3Cannot create an empty struct type for Ibis backend)r   r(   
isinstancedictr   r@   structNotImplementedError)_df
ibis_dtyperx   dtyper)   rR   s      r+   r   IbisNamespace.lit.<locals>.func   s]    KP1%GVZJeT**E:.//E
;<<GC%c**r.   c                    S/$ )Nliteralr~   r   s    r+   r   #IbisNamespace.lit.<locals>.<lambda>   s    ykr.   r   r   r*   )r   r   r   zSequence[ir.Value]r5   r(   )r)   rR   r   r   s   ``` r+   r   IbisNamespace.lit   s5    	+ 	+ zz"9#MM	  
 	
r.   c                F    SS jnU R                  US S U R                  S9$ )Nc                8    U R                   R                  5       /$ r&   )rE   countr   s    r+   r   IbisNamespace.len.<locals>.func   s    JJ$$&''r.   c                    S/$ )Nlenr~   r   s    r+   r   #IbisNamespace.len.<locals>.<lambda>   s    ugr.   r   r   r   r   r   r   )r)   r   s     r+   r   IbisNamespace.len   s/    	( zz"5#MM	  
 	
r.   c                  ^^ US:w  a  Sn[        U5      eSUU4S jjnU R                  U[        TT5      [        TT5      U R                  S9$ )Npearsonz1Only 'pearson' correlation is supported for Ibis.c                j   > U R                  T5      nU R                  T5      nUR                  USS9/$ )Npopru   )_evaluate_single_output_exprcorr)r   a_b_abs      r+   r    IbisNamespace.corr.<locals>.func   s9    11!4B11!4BGGBEG*++r.   r   r   )r   r5   r   r
   r(   )r)   r   r   methodrx   r   s    ``   r+   r   IbisNamespace.corr   s[    YEC%c**	, 	,
 zz"?1"E9!Q?MM	  
 	
r.   c                  ^ ^^^ SUUUU 4S jjnT R                  U[        TT5      [        TT5      T R                  S9$ )Nc                  > [        SU R                  T5      5      n[        SU R                  T5      5      nTS:X  a  UR                  USS9/$ TS:X  a  UR                  USS9/$ UR                  UR	                  5       UR	                  5       -  S9nUT-
  nUR                  USS9US-
  U-  -  nT	R                  U[        S5      :*  [        S 5      U5      /$ )Nzir.NumericColumnr   r   r   rl   sample)where)r   r   covr   notnullrZ   r   )
r   r   r   	n_samplesr   rescaledr   r   ddofr)   s
         r+   r   IbisNamespace.cov.<locals>.func   s    (#*J*J1*MNB(#*J*J1*MNBqyru-..qyrx011rzz|bjjl'BCI#d*Kvvbhv/IM[3PQHJJ{c!f4c$iJKKr.   r   r   r   )r)   r   r   r   r   s   ```` r+   r   IbisNamespace.cov   sE    
	L 
	L zz"?1"E9!Q?MM	  
 	
r.   c                h   ^ U R                   nSU4S jjnU R                  U[        T6 [        T6 US9$ )Nc                   > T VVVVs0 s H/  n[        U" U 5      /[        X/ 5      Q7SS06  H  u  p#nXB_M
     M1     nnnnn[        R                  " U5      /$ s  snnnnf )NstrictT)zipr   r@   r   )r   r   native_expr_aliasnames_to_colsr^   s         r+   r   "IbisNamespace.struct.<locals>.func   sz     "5!D-0H.6tD.  .)KE ". !  5 KK.//5s   6A
r   r   r(   r5   r   r
   r)   r^   r*   r   s    `  r+   r   IbisNamespace.struct   s?    --
	0 zz"?"G95A	  
 	
r.   c                h   ^ U R                   nSU4S jjnU R                  U[        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[         R                  " U5      /$ s  snnf r&   )r@   array)r   r   r   r   r^   s       r+   r    IbisNamespace.list.<locals>.func   s;    ,1NEDT"XkKXKEDNJJt$%% Os   ;r   r   r   r   s    `  r+   r   IbisNamespace.list   s?    --	& zz"?"G95A	  
 	
r.   r'   )r*   r   r   None)r   r   )r   ztype[IbisExpr])r   ztype[IbisLazyFrame])rC   r   r;   strrD   r   r   r   )rC   r   rD   r   r   r   )rM   r   rN   zir.Value | PythonLiteralr   r   )rR   r   r   r   r&   )rX   r   rR   r   rY   zir.Expr | Noner   r   )r^   r   r   r   )rt   zIterable[IbisLazyFrame]ru   r   r   r   )r^   r   r;   r   r   boolr   r   )r^   r   r   r   )rR   r    r   zIntoDType | Noner   r   )r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   intr   r   )__name__
__module____qualname____firstlineno__r   IBISr$   __annotations__r,   propertyr2   r5   r8   rF   rJ   rO   rS   rZ   r_   ry   r   r   r   r   r   r   r   r   __static_attributes__r~   r.   r+   r"   r"   %   s+    '5&9&9O^9  : :     ;>A$A47AGJA	AA% QU?!?*2??M?	?%.,.6B.	. 

+.
>B
	
2H$
"	

"
(
,
r.   r"   zir.Tabler   )1
__future__r   r   	functoolsr   	itertoolsr   typingr   r   r   r@   ibis.expr.typesr   typesirnarwhals._compliant.namespacer	   narwhals._expression_parsingr
   r   r   narwhals._ibis.dataframer   narwhals._ibis.exprr   narwhals._ibis.selectorsr   narwhals._ibis.utilsr   r   r   narwhals._sql.namespacer   narwhals._utilsr   r   collections.abcr   r   r   r   narwhals.typingr   r   r   r   r    r"   r~   r.   r+   <module>r     s    "    + +    7 
 3 ( : H H 0 ?;;' N
*j@A-)*N
r.   