Ë
    èlÖiC  ã                   ó¦   — d dl mZ d dlmZmZmZmZ d dlmZ d dl	m
Z
 d dlmZmZ  G d„ d«      Z G d„ d	e«      Zeeee   gef   Z G d
„ d«      Zy)é    )Úlocal)ÚAnyÚCallableÚDictÚOptional)ÚDbtRuntimeError)ÚQueryStringGenerator)ÚAdapterRequiredConfigÚQueryCommentc                   ó   — e Zd Zdd„Zd„ Zy)ÚQueryHeaderContextWrapperNc                 ó   — || _         y ©N)Ú_inner_context)ÚselfÚcontexts     úd/var/www/html/strategist-ai/venv_dbt/lib/python3.12/site-packages/dbt/adapters/base/query_headers.pyÚ__init__z"QueryHeaderContextWrapper.__init__   s
   € Ø%ˆÕó    c                 ó0   — t        | j                  |d«      S ©NÚ )Úgetattrr   )r   Únames     r   Ú__getattr__z%QueryHeaderContextWrapper.__getattr__   s   € Ü�t×*Ñ*¨D°"Ó5Ð5r   ©ÚreturnN)Ú__name__Ú
__module__Ú__qualname__r   r   © r   r   r   r   
   s   „ ó&ó6r   r   c                   ó>   — e Zd ZdZd
d„Zdedefd„Zdee   defd	„Z	y)Ú_QueryCommentzçA thread-local class storing thread-specific state information for
    connection management, namely:
        - the current thread's query comment.
        - a source_name indicating what set the current thread's query comment
    r   Nc                 ó    — || _         d| _        y )NF)Úquery_commentÚappend)r   Úinitials     r   r   z_QueryComment.__init__   s   € Ø,3ˆÔØ!ˆ�r   Úsqlc                 ól  — | j                   s|S | j                  rq|j                  «       }|d   dk(  r/|d d }dj                  || j                   j	                  «       «      S dj                  || j                   j	                  «       «      S dj                  | j                   j	                  «       |«      S )Néÿÿÿÿú;z{}
/* {} */;z{}
/* {} */z/* {} */
{})r%   r&   ÚrstripÚformatÚstrip©r   r(   s     r   Úaddz_QueryComment.add   sž   € Ø×!Ò!ØˆJà�;Š;à—*‘*“,ˆCØ�2‰w˜#Š~Ø˜#˜2�h�Ø&×-Ñ-¨c°4×3EÑ3E×3KÑ3KÓ3MÓNÐNà!×(Ñ(¨¨d×.@Ñ.@×.FÑ.FÓ.HÓIÐIà×$Ñ$ T×%7Ñ%7×%=Ñ%=Ó%?ÀÓEÐEr   Úcommentr&   c                 ód   — t        |t        «      rd|v rt        d|› �«      ‚|| _        || _        y )Nz*/z+query comment contains illegal value "*/": )Ú
isinstanceÚstrr   r%   r&   )r   r1   r&   s      r   Úsetz_QueryComment.set,   s7   € Ü�gœsÔ#¨°©ô "Ð$OÐPWÈyÐ"YÓZÐZØ$ˆÔØˆ�r   r   )
r   r   r    Ú__doc__r   r4   r0   r   Úboolr5   r!   r   r   r#   r#      s9   „ ñó"ðF�sð F˜só Fð˜8 C™=ð °$ô r   r#   c                   ó|   — e Zd ZdZdedeeef   ddfd„Zde	e   fd„Z
deeef   fd„Zd	edefd
„Zd„ Zdedefd„Zy)ÚMacroQueryStringSetterFÚconfigÚquery_header_contextr   Nc                 ó"  — || _         || _        | j                  «       }d„ | _        |rGt	        |t
        «      sJ ‚dj                  d|df«      }| j                  «       }t        ||«      | _        t        d «      | _
        | j                  «        y )Nc                  ó   — yr   r!   )r   Úmodels     r   ú<lambda>z1MacroQueryStringSetter.__init__.<locals>.<lambda>B   s   � r   ú
z8{%- macro query_comment_macro(connection_name, node) -%}z{% endmacro %})r:   Ú_query_header_contextÚ_get_comment_macroÚ	generatorr3   r4   ÚjoinÚ_get_contextr	   r#   r1   Úreset)r   r:   r;   Úcomment_macroÚmacroÚctxs         r   r   zMacroQueryStringSetter.__init__;   sŠ   € ð ˆŒØ%9ˆÔ"à×/Ñ/Ó1ˆÙ*@ˆŒáÜ˜m¬SÔ1Ð1Ð1Ø—I‘IàNØ!Ø$ðóˆEð ×#Ñ#Ó%ˆCÜ1°%¸Ó=ˆDŒNÜ$ TÓ*ˆŒØ�
‰
�r   c                 óB   — | j                   j                  j                  S r   )r:   r%   r1   ©r   s    r   rB   z)MacroQueryStringSetter._get_comment_macroR   s   € Ø�{‰{×(Ñ(×0Ñ0Ð0r   c                 ó   — | j                   S r   )rA   rK   s    r   rE   z#MacroQueryStringSetter._get_contextU   s   € Ø×)Ñ)Ð)r   r(   c                 ó8   — | j                   j                  |«      S r   )r1   r0   r/   s     r   r0   zMacroQueryStringSetter.addX   s   € Ø�|‰|×Ñ Ó$Ð$r   c                 ó(   — | j                  dd «       y )NÚmaster)r5   rK   s    r   rF   zMacroQueryStringSetter.reset[   s   € Ø�‰�˜4Õ r   r   c                 ó^  — d }|�t        |«      }| j                  ||«      }| j                  }t        | j                  j
                  t        «      r@| j                  j
                  j                  � | j                  j
                  j                  }| j                  j                  ||«       y r   )
r   rC   ÚDEFAULT_QUERY_COMMENT_APPENDr3   r:   r%   r   r&   r1   r5   )r   r   r;   ÚwrappedÚcomment_strr&   s         r   r5   zMacroQueryStringSetter.set^   s†   € Ø7;ˆØÐ+Ü/Ð0DÓEˆGØ—n‘n T¨7Ó3ˆà×2Ñ2ˆä�t—{‘{×0Ñ0´,Ô?Ø—‘×)Ñ)×0Ñ0Ð<à—[‘[×.Ñ.×5Ñ5ˆFØ�‰×Ñ˜ fÕ-r   )r   r   r    rQ   r
   r   r4   r   r   r   rB   rE   r0   rF   r5   r!   r   r   r9   r9   8   s|   „ Ø#(Ð ðØ+ðØCGÈÈSÈÁ>ðà	óð.1 H¨S¡Mó 1ð*˜d 3¨ 8™nó *ð%�sð %˜só %ò!ð.˜ð .°3ô .r   r9   N)Ú	threadingr   Útypingr   r   r   r   Údbt_common.exceptionsr   Údbt.adapters.clients.jinjar	   Ú!dbt.adapters.contracts.connectionr
   r   r   r#   r4   ÚQueryStringFuncr9   r!   r   r   ú<module>rZ      sT   ðÝ ß 0Ó 0å 1å ;ß Q÷6ñ 6ô �Eô  ðF ˜C Ð*CÑ!DÐEÀsÐJÑK€÷2.ò 2.r   