
    WiM                        d dl mZ d dlZd dlmZmZmZ d dlmZ  G d de      Z	 G d de      Z
 G d	 d
eej                        Z G d de      Z G d de      Z G d de      Zy)    )annotationsN)FieldFunctionTerm)format_alias_sqlc                  4     e Zd Z	 d	 	 	 	 	 d fdZd Z xZS )Arrayc                f    t         |   |       || _        || _        |xs
 t	               | _        y N)super__init___values_converter_clsdict_converter_options)selfvaluesconverter_clsconverter_optionsalias	__class__s        a/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/pypika/clickhouse/array.pyr   zArray.__init__   s0     	+"3"=tv    c                V   | j                   rsg }| j                  D ]>  } | j                   |fi | j                  }|j                  |j	                                @ dj                  ddj                  |      dg      }nt        | j                        }t        || j                        S )N [,])	r   r   r   appendget_sqljoinstrr   r   )r   	convertedvalue	convertersqls        r   r    zArray.get_sql   s    I 6/D//Q9P9PQ	  !2!2!456 ''3 3S9:C dll#CTZZ00r   )NNN)r   listr   zdict | Noner   
str | None)__name__
__module____qualname__r   r    __classcell__)r   s   @r   r	   r	      s(    ko>>CN>^h>1r   r	   c                  0    e Zd Z	 	 d	 	 	 	 	 	 	 ddZddZy)HasAnyNc                X    || _         || _        || _        || _        d| _        d| _        y )N hasAny)_left_array_right_arrayr   schemaargsname)r   
left_arrayright_arrayr   r4   s        r   r   zHasAny.__init__%   s0     &'
		r   c                P   | j                   j                         }| j                  j                         }dj                  | j                  t        | j                   t              rd|z  n|t        | j                  t              rd|z  n|      }t        || j                  fi |S )Nz{name}({left},{right})"%s")r6   leftright)	r2   r    r3   formatr6   
isinstancer   r   r   )	r   
with_aliaswith_namespace
quote_chardialectkwargsr;   r<   r&   s	            r   r    zHasAny.get_sql3   s    '')!!))+&--",T-=-=u"E$4$.t/@/@%$H&5.e . 

  TZZ:6::r   NN)r7   Array or Fieldr8   rE   r   r(   r4   r(   )FFNN)r)   r*   r+   r   r    r0   r   r   r.   r.   $   s:    
 !!" $ 	
 ;r   r.   c                  N    e Zd ZdddZddZeej                  dd              Zy)	_AbstractArrayFunctionNc                X    || _         || _        | j                         | _        || _        y r   )r4   r   clickhouse_functionr6   _array)r   arrayr   r4   s       r   r   z_AbstractArrayFunction.__init__?   s'    
,,.	r   c                    | j                   j                         }dj                  | j                  t	        | j                   t
              rd|z  n|      }t        || j                  fi |S )Nz{name}({array})r:   )r6   rK   )rJ   r    r=   r6   r>   r   r   r   )r   r@   rA   rB   rC   rK   r&   s          r   r    z_AbstractArrayFunction.get_sqlE   s^    ##%&&$.t{{E$B&5. ' 
  TZZ:6::r   c                     y r   r0   clss    r   rI   z*_AbstractArrayFunction.clickhouse_functionM   s     	r   rD   )rK   rE   r   r(   r4   r(   )FNNreturnr"   )	r)   r*   r+   r   r    classmethodabcabstractmethodrI   r0   r   r   rG   rG   >   s.    ;   r   rG   )	metaclassc                      e Zd Zedd       Zy)NotEmptyc                     y)NnotEmptyr0   rN   s    r   rI   zNotEmpty.clickhouse_functionT   s    r   NrP   r)   r*   r+   rR   rI   r0   r   r   rW   rW   S   s     r   rW   c                      e Zd Zedd       Zy)Emptyc                     y)Nemptyr0   rN   s    r   rI   zEmpty.clickhouse_functionZ   s    r   NrP   rZ   r0   r   r   r\   r\   Y   s     r   r\   c                      e Zd Zedd       Zy)Lengthc                     y)Nlengthr0   rN   s    r   rI   zLength.clickhouse_function`   s    r   NrP   rZ   r0   r   r   r`   r`   _   s     r   r`   )
__future__r   rS   pypika.termsr   r   r   pypika.utilsr   r	   r.   ABCMetarG   rW   r\   r`   r0   r   r   <module>rg      sk    " 
 
 *1D 1.;X ;4X *% " # r   