Ë
    Ìi  ã                   óð  — d dl Z d dlmZmZ d dlZd dlmZmZmZm	Z	m
Z
mZmZmZ 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 d d	lmZ d d
lmZ d dlm Z m!Z! d dl"m#Z# d dl$m%Z%  G d„ de«      Z&e G d„ de«      «       Z' G d„ de«      Z( ed¬«       G d„ dee«      «       Z) G d„ d«      Z*e G d„ deee jV                  ¬«      «       Z, G d„ de «      Z-dZ.e G d „ d!e«      «       Z/ G d"„ d#e-e «      Z0y)$é    N)Ú	dataclassÚfield)ÚAnyÚCallableÚClassVarÚDictÚIterableÚListÚOptionalÚTuple)ÚReplaceable)ÚExtensibleDbtClassMixinÚStrEnumÚValidatedStringMixinÚdbtClassMixin)Úget_node_info)Ú
fire_event)ÚDbtInternalError)Úmd5)ÚPattern)ÚProtocolÚ	Annotated)ÚNewConnectionOpening)Útranslate_aliasesc                   ó   — e Zd ZdZy)Ú
Identifierú^[A-Za-z_][A-Za-z0-9_]+$N)Ú__name__Ú
__module__Ú__qualname__ÚValidationRegex© ó    úb/var/www/html/strategist-ai/venv/lib/python3.12/site-packages/dbt/adapters/contracts/connection.pyr   r   #   s   „ Ø1�Or#   r   c                   óZ   — e Zd ZU eed<   dZee   ed<   dZee   ed<   dZ	ee   ed<   d„ Z
y)ÚAdapterResponseÚ_messageNÚcodeÚrows_affectedÚquery_idc                 ó   — | j                   S ©N)r'   ©Úselfs    r$   Ú__str__zAdapterResponse.__str__.   s   € Ø�}‰}Ðr#   )r   r   r    ÚstrÚ__annotations__r(   r   r)   Úintr*   r/   r"   r#   r$   r&   r&   '   s6   … àƒMØ€Dˆ(�3‰-ÓØ#'€M�8˜C‘=Ó'Ø"€Hˆh�s‰mÓ"ór#   r&   c                   ó   — e Zd ZdZdZdZdZy)ÚConnectionStateÚinitÚopenÚclosedÚfailN)r   r   r    ÚINITÚOPENÚCLOSEDÚFAILr"   r#   r$   r4   r4   2   s   „ Ø€DØ€DØ€FØ�Dr#   r4   F)r5   c                   óN  — e Zd ZU ee ed«      f   ed<   dZee	   ed<   e
j                  Ze
ed<   dZeed<   dZee   ed<   dZee   ed	<   e
j                  ddfdedee	   d
ede
dedee   ddfd„Zed„ «       Zej,                  d„ «       Zed„ «       Zej,                  d„ «       Zy)Ú
Connectionr   ÚtypeNÚnameÚstateFÚtransaction_openÚ_handleÚ_credentialsÚcredentialsÚhandleÚreturnc                 óX   — || _         || _        || _        || _        || _        || _        y r,   )r?   r@   rA   rE   rB   rF   )r.   r?   r@   rE   rA   rB   rF   s          r$   Ú__init__zConnection.__init__C   s0   € ð ˆŒ	ØˆŒ	ØˆŒ
Ø&ˆÔØ 0ˆÔØˆ�r#   c                 ó   — | j                   S r,   ©rD   r-   s    r$   rE   zConnection.credentialsS   s   € à× Ñ Ð r#   c                 ó   — || _         y r,   rK   ©r.   Úvalues     r$   rE   zConnection.credentialsW   s
   € à!ˆÕr#   c                 óØ   — t        | j                  t        «      r(	 | j                  j                  | «       | j                  S | j                  S # t        $ r}t        d«      |‚d }~ww xY w)Nz?A connection's open() method attempted to read the handle value)Ú
isinstancerC   Ú
LazyHandleÚresolveÚRecursionErrorr   )r.   Úexcs     r$   rF   zConnection.handle[   sa   € ä�d—l‘l¤JÔ/ðà—‘×$Ñ$ TÔ*ð
 �|‰|Ðˆt�|‰|Ðøô	 "ò Ü&ØUóàðûðús   œA Á	A)ÁA$Á$A)c                 ó   — || _         y r,   )rC   rM   s     r$   rF   zConnection.handleg   s	   € àˆ�r#   )r   r   r    r   r   r   r1   r@   r   r0   r4   r9   rA   rB   ÚboolrC   r   rD   r   rI   ÚpropertyrE   ÚsetterrF   r"   r#   r$   r>   r>   9   s  … ð �J¡Ð(CÓ DÐDÑ
EÓEØ€Dˆ(�3‰-ÓØ,×1Ñ1€Eˆ?Ó1Ø"Ð�dÓ"Ø!€GˆX�c‰]Ó!Ø"&€L�(˜3‘-Ó&ð "1×!5Ñ!5Ø!&Ø $ñàðð �s‰mðð #ð	ð
 ðð ðð ˜‘ðð 
óð  ñ!ó ð!ð ×Ññ"ó ð"ð ñ	ó ð	ð ‡]�]ñó ñr#   r>   c                   ó<   — e Zd ZdZdeegef   ddfd„Zdedefd„Zy)rQ   z†The opener must be a callable that takes a Connection object and opens the
    connection, updating the handle on the Connection.
    ÚopenerrG   Nc                 ó   — || _         y r,   )rZ   )r.   rZ   s     r$   rI   zLazyHandle.__init__q   s	   € Øˆ�r#   Ú
connectionc                 ót   — t        t        |j                  t        «       ¬«      «       | j	                  |«      S )N)Úconnection_stateÚ	node_info)r   r   rA   r   rZ   )r.   r\   s     r$   rR   zLazyHandle.resolvet   s-   € ÜÜ °*×2BÑ2BÌmËoÔ^ô	
ð �{‰{˜:Ó&Ð&r#   )r   r   r    Ú__doc__r   r>   rI   rR   r"   r#   r$   rQ   rQ   l   s9   „ ñð˜x¨¨°jÐ(@ÑAð Àdó ð' *ð '°ô 'r#   rQ   c            
       ó^  ‡ — e Zd ZU eed<   eed<    ei d¬«      Zeeeef      ed<   e	j                  defd„«       Zedefd„«       Zdefd	„Zdd
œdedeeeef      fd„Ze	j(                  deedf   fd„«       Zeˆ fd„«       Zeddeeef   dedeeef   fd„«       Zddedee   fd„Zˆ xZS )ÚCredentialsÚdatabaseÚschemaF)Údefaultr5   Ú_ALIASESrG   c                 ó   — t        d«      ‚)Nz/type not implemented for base credentials class©ÚNotImplementedErrorr-   s    r$   r?   zCredentials.type…   s   € ä!Ð"SÓTÐTr#   c                 ó   — t        d«      ‚)zÄHashed and included in anonymous telemetry to track adapter adoption.
        Return the field from Credentials that can uniquely identify
        one team/organization using this adapter
        z7unique_field not implemented for base credentials classrh   r-   s    r$   Úunique_fieldzCredentials.unique_field‰   s   € ô "Ð"[Ó\Ð\r#   c                 ó,   — t        | j                  «      S r,   )r   rk   r-   s    r$   Úhashed_unique_fieldzCredentials.hashed_unique_field‘   s   € Ü�4×$Ñ$Ó%Ð%r#   )Úwith_aliasesrn   c             #   óF  K  — | j                  d¬«      }t        | j                  «       «      }g }|r1| j                  j	                  «       D ��cg c]  \  }}||v sŒ|‘Œ }}}t        j                  | j                  «       |«      D ]  }||v sŒ|||   f–— Œ yc c}}w ­w)zBReturn an ordered iterator of key/value pairs for pretty-printing.F)Ú	omit_noneN)Úto_dictÚsetÚ_connection_keysrf   ÚitemsÚ	itertoolsÚchain)r.   rn   Úas_dictÚconnection_keysÚaliasesÚkÚvÚkeys           r$   Úconnection_infozCredentials.connection_info”   s›   è ø€ à—,‘,¨�,Ó/ˆÜ˜d×3Ñ3Ó5Ó6ˆØˆÙØ%)§]¡]×%8Ñ%8Ó%:×S™T˜Q ¸aÀ?Ò>R’qÐSˆGÑSÜ—?‘? 4×#8Ñ#8Ó#:¸GÓDò 	(ˆCØ�gŠ~Ø˜7 3™<Ð'Ó'ñ	(ùó Tùs   ‚AB!ÁBÁBÁ .B!ÂB!.c                 ó   — t         ‚r,   rh   r-   s    r$   rs   zCredentials._connection_keysŸ   s   € ä!Ð!r#   c                 óH   •— t         ‰| �  |«      }| j                  |«      }|S r,   )ÚsuperÚ__pre_deserialize__r   )ÚclsÚdataÚ	__class__s     €r$   r�   zCredentials.__pre_deserialize__£   s'   ø€ ä‰wÑ*¨4Ó0ˆà×$Ñ$ TÓ*ˆØˆr#   ÚkwargsÚrecursec                 ó0   — t        || j                  |«      S r,   )r   rf   )r‚   r…   r†   s      r$   r   zCredentials.translate_aliasesª   s   € ä  ¨¯©°wÓ?Ð?r#   ÚdctÚcontextc           	      ó²   — | j                   rD|j                  | j                   j                  «       D ��ci c]  \  }}||v r|||   “Œ c}}«       |S c c}}w r,   )rf   Úupdatert   )r.   rˆ   r‰   Únew_nameÚcanonical_names        r$   Ú__post_serialize__zCredentials.__post_serialize__®   s\   € à�=Š=Ø�J‰Jð 59·M±M×4GÑ4GÓ4I÷á0˜ .Ø%¨Ñ,ð ˜c .Ñ1Ñ1óôð ˆ
ùós   µA
)Fr,   )r   r   r    r0   r1   r   rf   r   r   ÚabcÚabstractpropertyr?   rW   rk   rm   rV   r	   r   r   r}   Úabstractmethodrs   Úclassmethodr�   r   r   rŽ   Ú__classcell__)r„   s   @r$   rb   rb      s4  ø… àƒMØƒKÙ).°rÀÔ)F€Hˆh�t˜C ˜H‘~Ñ&ÓFà×ÑðU�cò Uó ðUð ð]˜cò ]ó ð]ð& Só &ð 7<ò 	(¨tð 	(ÀÈÈsÐTWÈxÉÑ@Yó 	(ð 	×Ñð" %¨¨S¨¡/ò "ó ð"ð óó ðð ñ@ t¨C°¨H¡~ð @Àð @ÐQUÐVYÐ[^ÐV^ÑQ_ò @ó ð@ñ
 dð 
°X¸d±^÷ 
r#   rb   )Ú	metaclassc                   ó<   — e Zd ZU eed<   eed<   eed<   eed<   d„ Zy)ÚHasCredentialsrE   Úprofile_nameÚtarget_nameÚthreadsc                 ó   — t        d«      ‚)Nzto_target_dict not implementedrh   r-   s    r$   Úto_target_dictzHasCredentials.to_target_dictÁ   s   € Ü!Ð"BÓCÐCr#   N)r   r   r    rb   r1   r0   r2   r›   r"   r#   r$   r–   r–   »   s   … ØÓØÓØÓØƒLóDr#   r–   aá  
{%- set comment_dict = {} -%}
{%- do comment_dict.update(
    app='dbt',
    dbt_version=dbt_version,
    profile_name=target.get('profile_name'),
    target_name=target.get('target_name'),
) -%}
{%- if node is not none -%}
  {%- do comment_dict.update(
    node_id=node.unique_id,
  ) -%}
{% else %}
  {# in the node context, the connection name is the node_id #}
  {%- do comment_dict.update(connection_name=connection_name) -%}
{%- endif -%}
{{ return(tojson(comment_dict)) }}
c                   óR   — e Zd ZU eZeed<   dZee	   ed<    e
dddi¬«      Ze	ed<   y)	ÚQueryCommentÚcommentNÚappendFÚaliasz	job-label)re   ÚmetadataÚ	job_label)r   r   r    ÚDEFAULT_QUERY_COMMENTrž   r0   r1   rŸ   r   rV   r   r¢   r"   r#   r$   r�   r�   Ù   s0   … à(€GˆSÓ(Ø!€FˆH�T‰NÓ!Ù E°W¸kÐ4JÔK€IˆtÔKr#   r�   c                   óJ   — e Zd ZU eed<   eed<   eeef   ed<   eed<   eed<   y)ÚAdapterRequiredConfigÚproject_nameÚquery_commentÚcli_varsÚtarget_pathÚlog_cache_eventsN)	r   r   r    r0   r1   r�   r   r   rV   r"   r#   r$   r¥   r¥   à   s(   … ØÓØÓØ�3˜�8‰nÓØÓØÔr#   r¥   )1r�   Údataclassesr   r   ru   Útypingr   r   r   r   r	   r
   r   r   Údbt_common.contracts.utilr   Údbt_common.dataclass_schemar   r   r   r   Údbt_common.events.contextvarsr   Údbt_common.events.functionsr   Údbt_common.exceptionsr   Údbt_common.utilsr   Ú mashumaro.jsonschema.annotationsr   Útyping_extensionsr   r   Údbt.adapters.events.typesr   Údbt.adapters.utilsr   r   r&   r4   r>   rQ   ÚABCMetarb   r–   r£   r�   r¥   r"   r#   r$   ú<module>r¸      s  ðÛ 
ß (Û ÷	÷ 	ó 	õ 2÷ó õ 8Ý 2Ý 2Ý  Ý 4ß 1å :Ý 0ô2Ð%ô 2ð ô�mó ó ðô�gô ñ �Ôô/Ð(¨+ó /ó ð/÷d'ñ 'ð& ô8Ð)¨;À#Ç+Á+ô 8ó ð8ôvD�Xô DðÐ ð( ôL�=ó Ló ðLô˜N¨Hõ r#   