
    Wi%
                        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y)    )annotationsN)Function)format_alias_sqlc                  Z     e Zd Zdd fdZeej                  dd              ZddZ xZ	S )_AbstractSearchStringc                T    t         |   | j                         ||       || _        y N)alias)super__init__clickhouse_function_pattern)selfnamepatternr
   	__class__s       i/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/pypika/clickhouse/search_string.pyr   z_AbstractSearchString.__init__
   s'    113TG    c                     y N clss    r   r   z)_AbstractSearchString.clickhouse_function        	r   c           
     x   g }| j                   D ]\  }t        |d      r4|j                  dj                   |j                  d	ddi|             C|j                  t        |             ^ dj                  | j                  dj                  |      | j                        }t        || j                  fi |S )
Nget_sqltoString("{arg}")
with_aliasFargz{name}({args},'{pattern}'),)r   argsr   r   )r"   hasattrappendformatr   strr   joinr   r   r
   )	r   r   with_namespace
quote_chardialectkwargsr"   psqls	            r   r   z_AbstractSearchString.get_sql   s     	$Aq)$/669199;`PU;`Y_;`6abCF#		$ +11$MM 2 

  TZZ:6::r   r   )r   r&   r
   
str | Nonereturnr&   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y)Matchc                     y)Nmatchr   r   s    r   r   zMatch.clickhouse_function%   s    r   Nr/   r3   r4   r5   r6   r   r   r   r   r=   r=   $   s     r   r=   c                      e Zd Zedd       Zy)Likec                     y)Nliker   r   s    r   r   zLike.clickhouse_function+   s    r   Nr/   r@   r   r   r   rB   rB   *   s     r   rB   c                      e Zd Zedd       Zy)NotLikec                     y)NnotLiker   r   s    r   r   zNotLike.clickhouse_function1   s    r   Nr/   r@   r   r   r   rF   rF   0   s     r   rF   c                  Z     e Zd Zdd fdZeej                  dd              ZddZ xZ	S )_AbstractMultiSearchStringc                T    t         |   | j                         ||       || _        y r	   )r   r   r   	_patterns)r   r   patternsr
   r   s       r   r   z#_AbstractMultiSearchString.__init__7   s'    113TG!r   c                     y r   r   r   s    r   r   z._AbstractMultiSearchString.clickhouse_function<   r   r   c                   g }| j                   D ]\  }t        |d      r4|j                  dj                   |j                  d
ddi|             C|j                  t        |             ^ dj                  | j                  dj                  |      dj                  | j                  D cg c]  }d|z  	 c}      	      }	t        |	| j                  fi |S c c}w )Nr   r   r   Fr   z{name}({args},[{patterns}])r!   z'%s')r   r"   rM   r   )r"   r#   r$   r%   r   r&   r   r'   rL   r   r
   )
r   r   r(   r)   r*   r+   r"   r,   ir-   s
             r   r   z"_AbstractMultiSearchString.get_sqlA   s     	$Aq)$/669199;`PU;`Y_;`6abCF#		$ ,22$XX4>>BavzBC 3 

  TZZ:6:: Cs   -Cr   )rM   listr
   r.   r/   r1   r2   r:   s   @r   rJ   rJ   6   s/    "
   ;r   rJ   c                      e Zd Zedd       Zy)MultiSearchAnyc                     y)NmultiSearchAnyr   r   s    r   r   z"MultiSearchAny.clickhouse_functionR   s    r   Nr/   r@   r   r   r   rS   rS   Q   s       r   rS   c                      e Zd Zedd       Zy)MultiMatchAnyc                     y)NmultiMatchAnyr   r   s    r   r   z!MultiMatchAny.clickhouse_functionX   s    r   Nr/   r@   r   r   r   rW   rW   W   s     r   rW   )
__future__r   r7   pypika.termsr   pypika.utilsr   ABCMetar   r=   rB   rF   rJ   rS   rW   r   r   r   <module>r^      sv    " 
 ! );H ;6!   # ;S[[ ;6 /  . r   