
    2i
                         S SK r S SKJrJrJr  S SKJr   " S S\5      r " S S\5      r " S S	\\ R                  S
9r
 " S S\
5      r " S S\
5      r " S S\
5      rg)    N)FieldFunctionTerm)format_alias_sqlc                   B   ^  \ rS rSrSS\S\S\4U 4S jjjrS rSr	U =r
$ )	Array   valuesconverter_optionsaliasc                 l   > [         TU ]  U5        Xl        X l        U=(       d
    [	        5       U l        g N)super__init___values_converter_clsdict_converter_options)selfr
   converter_clsr   r   	__class__s        Q/home/james-whalen/.local/lib/python3.13/site-packages/pypika/clickhouse/array.pyr   Array.__init__   s*    +"3"=tv    c                 b   U R                   (       au  / nU R                   H?  nU R                   " U40 U R                  D6nUR                  UR	                  5       5        MA     SR                  SSR                  U5      S/5      nO[        U R                  5      n[        X@R                  5      $ )N [,])	r   r   r   appendget_sqljoinstrr   r   )r   	convertedvalue	convertersqls        r   r!   Array.get_sql   s    I //Q9P9PQ	  !2!2!45 & ''3 3S9:C dll#CZZ00r   )r   r   r   )NNN)__name__
__module____qualname____firstlineno__listr   r#   r   r!   __static_attributes____classcell__)r   s   @r   r   r      s-    >t >D >`c > >1 1r   r   c            	       d    \ rS rSr  S
S\=(       d    \S\=(       d    \S\S\4S jjrSS jrS	r	g)HasAny    N
left_arrayright_arrayr   schemac                 P    Xl         X l        X0l        X@l        SU l        SU l        g )N hasAny)_left_array_right_arrayr   r5   argsname)r   r3   r4   r   r5   s        r   r   HasAny.__init__!   s(     &'
		r   c                 \   U R                   R                  5       nU R                  R                  5       nSR                  U R                  [        U R                   [        5      (       a  SU-  OU[        U R                  [        5      (       a  SU-  OUS9n[        XR                  40 UD6$ )Nz{name}({left},{right})"%s")r<   leftright)	r9   r!   r:   formatr<   
isinstancer   r   r   )	r   
with_aliaswith_namespace
quote_chardialectkwargsr@   rA   r'   s	            r   r!   HasAny.get_sql/   s    '')!!))+&--",T-=-=u"E"E$4$.t/@/@%$H$H&5.e . 

  ZZ:6::r   )r9   r:   r   r;   r<   r5   NN)FFNN)
r)   r*   r+   r,   r   r   r#   r   r!   r.   r7   r   r   r1   r1       sB    
 NU ^e 	
 ;r   r1   c                       \ rS rSrSS\=(       d    \S\S\4S jjrSS jr\	\
R                  S\4S	 j5       5       rS
rg)_AbstractArrayFunction:   Narrayr   r5   c                 R    X0l         X l        U R                  5       U l        Xl        g r   )r5   r   clickhouse_functionr<   _array)r   rN   r   r5   s       r   r   _AbstractArrayFunction.__init__;   s!    
,,.	r   c                     U R                   R                  5       nSR                  U R                  [	        U R                   [
        5      (       a  SU-  OUS9n[        X`R                  40 UD6$ )Nz{name}({array})r?   )r<   rN   )rQ   r!   rB   r<   rC   r   r   r   )r   rE   rF   rG   rH   rN   r'   s          r   r!   _AbstractArrayFunction.get_sqlA   s_    ##%&&$.t{{E$B$B&5. ' 
  ZZ:6::r   returnc                     g r   r7   clss    r   rP   *_AbstractArrayFunction.clickhouse_functionI   s     	r   )rQ   r   r<   r5   rJ   )FNN)r)   r*   r+   r,   r   r   r#   r   r!   classmethodabcabstractmethodrP   r.   r7   r   r   rL   rL   :   sN    enu S  ; C   r   rL   )	metaclassc                   ,    \ rS rSr\S\4S j5       rSrg)NotEmptyO   rU   c                     g)NnotEmptyr7   rW   s    r   rP   NotEmpty.clickhouse_functionP   s    r   r7   Nr)   r*   r+   r,   rZ   r#   rP   r.   r7   r   r   r_   r_   O   s    C  r   r_   c                   ,    \ rS rSr\S\4S j5       rSrg)EmptyU   rU   c                     g)Nemptyr7   rW   s    r   rP   Empty.clickhouse_functionV   s    r   r7   Nrd   r7   r   r   rf   rf   U   s    C  r   rf   c                   ,    \ rS rSr\S\4S j5       rSrg)Length[   rU   c                     g)Nlengthr7   rW   s    r   rP   Length.clickhouse_function\   s    r   r7   Nrd   r7   r   r   rl   rl   [   s    C  r   rl   )r[   pypika.termsr   r   r   pypika.utilsr   r   r1   ABCMetarL   r_   rf   rl   r7   r   r   <module>rt      sh    
 
 *1D 1*;X ;4X *% " # r   