
    Zi%
                       d dl mZ d dlZd dlmZ d dlmZ  G d deej                  Z G d d	e          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dS )    )annotationsN)Function)format_alias_sqlc                  \     e Zd Zdd fdZeej        dd                        Zdd
Z xZ	S )_AbstractSearchStringNpatternstralias
str | Nonec                    t                                          |                                 ||           || _        d S N)r
   )super__init__clickhouse_function_pattern)selfnamer   r
   	__class__s       Z/root/projects/butler/venv/lib/python3.11/site-packages/pypika/clickhouse/search_string.pyr   z_AbstractSearchString.__init__
   s9    1133TGGG    returnc                    d S N clss    r   r   z)_AbstractSearchString.clickhouse_function   	     	r   Fc           
     |   g }| j         D ]k}t          |d          r7|                    d                     |j        d	ddi|                     I|                    t          |                     ld                    | j        d                    |          | j                  }t          || j
        fi |S )
Nget_sqltoString("{arg}")
with_aliasFargz{name}({args},'{pattern}'),)r   argsr   r   )r%   hasattrappendformatr   r	   r   joinr   r   r
   	r   r!   with_namespace
quote_chardialectkwargsr%   psqls	            r   r   z_AbstractSearchString.get_sql   s     	$ 	$Aq)$$ $/66919;`;`PU;`Y_;`;`6aabbbbCFF####*11$M 2 
 

  TZ::6:::r   r   )r   r	   r
   r   r   r	   FFNN
__name__
__module____qualname__r   classmethodabcabstractmethodr   r   __classcell__r   s   @r   r   r   	   s                     
     [; ; ; ; ; ; ; ;r   r   )	metaclassc                  &    e Zd Zedd            ZdS )Matchr   r	   c                    dS )Nmatchr   r   s    r   r   zMatch.clickhouse_function%   s    wr   Nr1   r4   r5   r6   r7   r   r   r   r   r>   r>   $   s2           [  r   r>   c                  &    e Zd Zedd            ZdS )Liker   r	   c                    dS )Nliker   r   s    r   r   zLike.clickhouse_function+   s    vr   Nr1   rA   r   r   r   rC   rC   *   s2           [  r   rC   c                  &    e Zd Zedd            ZdS )NotLiker   r	   c                    dS )NnotLiker   r   s    r   r   zNotLike.clickhouse_function1   s    yr   Nr1   rA   r   r   r   rG   rG   0   s2           [  r   rG   c                  \     e Zd Zdd fdZeej        dd	                        ZddZ xZ	S )_AbstractMultiSearchStringNpatternslistr
   r   c                    t                                          |                                 ||           || _        d S r   )r   r   r   	_patterns)r   r   rL   r
   r   s       r   r   z#_AbstractMultiSearchString.__init__7   s9    1133TGGG!r   r   r	   c                    d S r   r   r   s    r   r   z._AbstractMultiSearchString.clickhouse_function<   r   r   Fc           
        g }| j         D ]k}t          |d          r7|                    d                     |j        d
ddi|                     I|                    t          |                     ld                    | j        d                    |          d                    d | j        D                       	          }t          || j
        fi |S )Nr   r    r!   Fr"   z{name}({args},[{patterns}])r$   c                    g | ]}d |z  S )z'%s'r   ).0is     r   
<listcomp>z6_AbstractMultiSearchString.get_sql.<locals>.<listcomp>L   s    BBBavzBBBr   )r   r%   rL   r   )r%   r&   r'   r(   r   r	   r   r)   rO   r   r
   r*   s	            r   r   z"_AbstractMultiSearchString.get_sqlA   s     	$ 	$Aq)$$ $/66919;`;`PU;`Y_;`;`6aabbbbCFF####+22$XXBB4>BBBCC 3 
 

  TZ::6:::r   r   )rL   rM   r
   r   r1   r2   r3   r;   s   @r   rK   rK   6   s        " " " " " " "
     [; ; ; ; ; ; ; ;r   rK   c                  &    e Zd Zedd            ZdS )MultiSearchAnyr   r	   c                    dS )NmultiSearchAnyr   r   s    r   r   z"MultiSearchAny.clickhouse_functionR   s    r   Nr1   rA   r   r   r   rW   rW   Q   s2              [     r   rW   c                  &    e Zd Zedd            ZdS )MultiMatchAnyr   r	   c                    dS )NmultiMatchAnyr   r   s    r   r   z!MultiMatchAny.clickhouse_functionX   s    r   Nr1   rA   r   r   r   r[   r[   W   s2           [  r   r[   )
__future__r   r8   pypika.termsr   pypika.utilsr   ABCMetar   r>   rC   rG   rK   rW   r[   r   r   r   <module>rb      s   " " " " " " 



 ! ! ! ! ! ! ) ) ) ) ) ); ; ; ; ;H ; ; ; ;6    !               #   ; ; ; ; ;S[ ; ; ; ;6         /          .     r   