§
    xÅjf(  ã                   ó¸  — d dl Z d dlmZmZ d dlZd dlmZmZ d dl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mZ erd d
lmZ d dlmZmZmZmZmZ n$ G d„ d¦  «        Z G d„ d¦  «        Z e¦   «         Z	 d dlm Z  d dl!m"Z" d dl#m$Z$ n# e%$ r  e	d¦  «        ‚w xY w G d„ de
¦  «        Z& ed¦  «        Z' ed¦  «        Z(d#d„Z)d#d„Z*d$d„Z+d%d"„Z,dS )&é    N)ÚTYPE_CHECKINGÚTypeVar)ÚOPÚSPANDATA)ÚDidNotEnableÚIntegrationÚ_check_minimum_version)Úshould_send_default_pii)ÚStreamedSpan)ÚSpan)Úhas_span_streaming_enabled)Úcapture_internal_exceptionsÚhas_data_collection_enabled)ÚIterator)ÚAnyÚCallableÚOptionalÚ	ParamSpecÚUnionc                   ó   — e Zd Zd„ ZdS )r   c                 ó"   — d | _         d | _        d S ©N)ÚargsÚkwargs©ÚselfÚ_s     úZC:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/integrations/clickhouse_driver.pyÚ__init__zParamSpec.__init__   s   € ØˆDŒIØˆDŒKˆKˆKó    N)Ú__name__Ú
__module__Ú__qualname__r   © r    r   r   r      s#   € € € € € ð	ð 	ð 	ð 	ð 	r    r   c                   ó   — e Zd Zd„ ZdS )Ú	_Callablec                 ó   — d S r   r$   r   s     r   Ú__getitem__z_Callable.__getitem__   s   € Ø�4r    N)r!   r"   r#   r(   r$   r    r   r&   r&      s#   € € € € € ð	ð 	ð 	ð 	ð 	r    r&   )ÚVERSION)ÚClient)Ú
Connectionz clickhouse-driver not installed.c                   ó4   — e Zd ZdZde› �Zedd„¦   «         ZdS )ÚClickhouseDriverIntegrationÚclickhouse_driverzauto.db.ÚreturnNc                  ó˜  — t          t          t          ¦  «         t          t          j        ¦  «        t          _        t          ¦   «          t          t          j	        ¦  «        t          _	        t          t          d¦  «        r#t          t          j        ¦  «        t          _        t          t          j        ¦  «        t          _        d S )NÚreceive_end_of_insert_query)r	   r-   r)   Ú_wrap_startr+   Ú
send_queryÚ_wrap_send_dataÚ	_wrap_endr*   Úreceive_end_of_queryÚhasattrr1   Úreceive_resultr$   r    r   Ú
setup_oncez&ClickhouseDriverIntegration.setup_once2   s‘   € åÕ:½GÑDÔDÐDõ !,­JÔ,AÑ BÔ B�
Ôõ 	ÑÔÐõ '0µÔ0KÑ&LÔ&L�Ô#Ý•6Ð8Ñ9Ô9ð 	å1:ÝÔ2ñ2ô 2�FÔ.õ !*­&Ô*?Ñ @Ô @�ÔÐÐr    ©r/   N)r!   r"   r#   Ú
identifierÚoriginÚstaticmethodr9   r$   r    r   r-   r-   .   sJ   € € € € € Ø$€JØ$˜
Ð$Ð$€FàðAð Að Añ „\ðAð Að Ar    r-   ÚPÚTÚfúCallable[P, T]r/   c                 óH   ‡ — t          j        ‰ ¦  «        dˆ fd„¦   «         }|S )	Nr   úP.argsr   úP.kwargsr/   r?   c                  óð  •— t          j        ¦   «         }|                     t          ¦  «        € ‰	| i |¤ŽS | d         }| d         }t	          | ¦  «        dk    r| d         n|                     d¦  «        }t	          | ¦  «        dk    r| d         n|                     d¦  «        }t          |j        ¦  «        rÝd }t           j         	                    ¦   «         �Rt           j         
                    |dt          j        dt          j        t          j        t!          |¦  «        i¬	¦  «        }||_        t          j        d
t          j        |j        t          j        dt          j        |j        t          j        |j        t          j        |j        i|_        n½t          j
        t          j        |t          j        ¬¦  «        }|                     d|¦  «         |r|                     d|¦  «         |rbt=          |j        ¦  «        r*|j        d         d         r|                     d|¦  «         n$t?          ¦   «         r|                     d|¦  «         ||_         |�tC          ||¦  «          ‰	| i |¤Ž}|S )Nr   é   é   Úquery_idé   Úparamsz	sentry.opzsentry.origin)ÚnameÚ
attributesÚ
clickhouseúclickhouse-driver)ÚoprK   r<   Úqueryzdb.query_idÚdata_collectionÚdatabase_query_dataú	db.params)"Ú
sentry_sdkÚ
get_clientÚget_integrationr-   ÚlenÚgetr   ÚoptionsÚtracesÚget_current_spanÚ
start_spanr   ÚDBr<   r   ÚDB_QUERY_TEXTÚstrÚ_queryÚ	DB_SYSTEMÚDB_NAMEÚdatabaseÚDB_DRIVER_NAMEÚSERVER_ADDRESSÚhostÚSERVER_PORTÚportÚDB_USERÚuserÚ_breadcrumb_dataÚset_datar   r
   Ú_sentry_spanÚ_set_db_data)
r   r   ÚclientÚ
connectionrP   rH   rJ   ÚspanÚretr@   s
            €r   Ú_innerz_wrap_start.<locals>._innerL   sT  ø€ åÔ&Ñ(Ô(ˆØ×!Ò!Õ"=Ñ>Ô>ÐFØ�1�dÐ%˜fÐ%Ð%Ð%à#'¨¤7ˆ
Ø�Q”ˆÝ! $™iœi¨!šm˜m�4˜”7�7°·²¸JÑ1GÔ1GˆÝ ™IœI¨šM˜M��a”�¨v¯zªz¸(Ñ/CÔ/Cˆå% f¤nÑ5Ô5ð &	7ØˆDÝÔ ×1Ò1Ñ3Ô3Ð?Ý!Ô(×3Ò3Øà#¥R¤UØ'Õ)DÔ)KÝ Ô.µ°E±
´
ð ð 4ñ ô �ð !&ˆJÔåÔ" LÝÔ  *Ô"5ÝÔ'Ð)<ÝÔ'¨¬ÝÔ$ j¤oÝÔ  *¤/ð+ˆJÔ'Ð'õ Ô(Ý”5ØÝ2Ô9ðñ ô ˆDð �MŠM˜' 5Ñ)Ô)Ð)àð 7Ø—’˜m¨XÑ6Ô6Ð6àð 7Ý.¨v¬~Ñ>Ô>ð 7Ø”~Ð&7Ô8Ð9NÔOð ;ØŸš k°6Ñ:Ô:Ð:øÝ,Ñ.Ô.ð 7Ø—M’M +¨vÑ6Ô6Ð6à"&ˆ
ÔàÐÝ˜˜zÑ*Ô*Ð*ð ˆa�Ð ˜Ð Ð ˆàˆ
r    ©r   rC   r   rD   r/   r?   )Ú	functoolsÚwraps)r@   rs   s   ` r   r2   r2   K   s>   ø€ Ý„_�QÑÔð:ð :ð :ð :ð :ñ Ôð:ðx €Mr    c                 ó   ‡ — dˆ fd„}|S )	Nr   rC   r   rD   r/   r?   c                  óÞ  •—  ‰| i |¤Ž}| d         }t          |j        dd ¦  «        }t          |j        dd ¦  «        }|�ƒ|��t          j        ¦   «         j        }t          |¦  «        r|d         d         st          |¦  «        st          ¦   «         rd|i|¥}t          j        ¦   «                              |d|¬¦  «         t          |j        d	d ¦  «        }|€|S t          |t          ¦  «        r|                     ¦   «          næ|�pt          j        ¦   «         j        }t          |¦  «        r%|d         d         r|                     d|¦  «         n$t          ¦   «         r|                     d|¦  «         t          ¦   «         5  |j                             |j                             d¦  «        d|j        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          |S )
Nr   r`   rk   rQ   rR   z	db.resultrP   )ÚmessageÚcategoryÚdatarm   )Úgetattrrp   rT   rU   rY   r   r
   Úget_isolation_scopeÚadd_breadcrumbÚ
isinstancer   Úendrl   r   ÚscopeÚ_dataÚpopÚfinish)	r   r   ÚresÚinstancerP   Úbreadcrumb_dataÚclient_optionsrq   r@   s	           €r   Ú
_inner_endz_wrap_end.<locals>._inner_end�   sS  ø€ Øˆa�Ð ˜Ð Ð ˆØ! !œWˆå˜Ô+¨X°tÑ<Ô<ˆÝ6=ØÔÐ!3°Tñ7
ô 7
ˆð Ð Ð!<Ý'Ô2Ñ4Ô4Ô<ˆNå+¨NÑ;Ô;ðHà"Ð#4Ô5Ð6KÔLðHõ 0°Ñ?Ô?ð	Hõ
 ,Ñ-Ô-ðHð $/°Ð"G°Ð"G�åÔ*Ñ,Ô,×;Ò;ØØ Ø$ð <ñ ô ð õ �xÔ*¨N¸DÑAÔAˆàˆ<ØˆJå�d�LÑ)Ô)ð 	Ø�HŠH‰JŒJˆJˆJàˆÝ!+Ô!6Ñ!8Ô!8Ô!@�Ý.¨~Ñ>Ô>ð 4Ø%Ð&7Ô8Ð9NÔOð 8ØŸš k°3Ñ7Ô7Ð7øÝ,Ñ.Ô.ð 4Ø—M’M +¨sÑ3Ô3Ð3å,Ñ.Ô.ð ð Ø”
×)Ò)Ø œJŸNšN¨7Ñ3Ô3¸gÈDÌJð *ñ ô ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð
 �KŠK‰MŒMˆMàˆ
s   Æ;GÇGÇGrt   r$   )r@   r‰   s   ` r   r5   r5   Œ   s*   ø€ ð1ð 1ð 1ð 1ð 1ð 1ðf Ðr    c                  óF   ‡— t           j        Š	 dˆfd„	} | t           _        d S )NFc                 óX  •‡
‡— t          | j        dd ¦  «        }t          |t          ¦  «        r%t	          || j        ¦  «          ‰| ||||g|¢R i |¤ŽS |��Et	          || j        ¦  «         t          j        ¦   «         j        }t          |¦  «        r…|d         d         rv|j	         
                    dg ¦  «        Š
t          |t          t          f¦  «        r‰
                     |¦  «         n|Šd	ˆ
ˆfd„}	 |	¦   «         }|                     d‰
¦  «         n„t          ¦   «         rv|j	         
                    dg ¦  «        Š
t          |t          t          f¦  «        r‰
                     |¦  «         n|Šd	ˆ
ˆfd„}	 |	¦   «         }|                     d‰
¦  «          ‰| ||||g|¢R i |¤ŽS )
Nrm   rQ   rR   rS   r/   úIterator[Any]c               3   óH   •K  — ‰D ]} ‰                      | ¦  «         | V — Œd S r   ©Úappend©ÚitemÚ	db_paramsÚ	orig_datas    €€r   Úwrapped_generatorzD_wrap_send_data.<locals>._inner_send_data.<locals>.wrapped_generatorá   s?   øè è € Ø(1ð +ð + Ø )× 0Ò 0°Ñ 6Ô 6Ð 6Ø&* 
 
 
 
ð+ð +r    c               3   óH   •K  — ‰D ]} ‰                      | ¦  «         | V — Œd S r   rŽ   r�   s    €€r   r”   zD_wrap_send_data.<locals>._inner_send_data.<locals>.wrapped_generatorö   s?   øè è € Ø$-ð 'ð '˜DØ%×,Ò,¨TÑ2Ô2Ð2Ø"&˜J˜J˜J˜Jð'ð 'r    )r/   rŒ   )r|   rp   r   r   rn   rT   rU   rY   r   r‚   rX   ÚlistÚtupleÚextendrl   r
   )r   Úsample_blockr{   Útypes_checkÚcolumnarr   r   rq   rˆ   r”   r’   r“   Úoriginal_send_datas             @@€r   Ú_inner_send_dataz)_wrap_send_data.<locals>._inner_send_dataÆ   s0  øøø€ õ �t”¨¸Ñ=Ô=ˆå�d�LÑ)Ô)ð 	Ý˜˜tœÑ/Ô/Ð/Ø%Ð%Ø�l D¨+°xðØBFðð ð ØJPðð ð ð ÑÝ˜˜tœÑ/Ô/Ð/å'Ô2Ñ4Ô4Ô<ˆNÝ*¨>Ñ:Ô:ð )6Ø!Ð"3Ô4Ð5JÔKð :Ø $¤
§¢¨{¸BÑ ?Ô ?�IÝ! $­­u¨Ñ6Ô6ð 3Ø!×(Ò(¨Ñ.Ô.Ð.Ð.ð %)˜	ð
+ð +ð +ð +ð +ð +ð +ð  1Ð0Ñ2Ô2˜à—M’M +¨yÑ9Ô9Ð9øÝ(Ñ*Ô*ð 6Ø œJŸNšN¨;¸Ñ;Ô;�	å˜d¥T­5 MÑ2Ô2ð /Ø×$Ò$ TÑ*Ô*Ð*Ð*ð !%�Ið
'ð 'ð 'ð 'ð 'ð 'ð 'ð -Ð,Ñ.Ô.�Dà—’˜k¨9Ñ5Ô5Ð5à!Ð!Ø�,  k°8ð
Ø>Bð
ð 
ð 
ØFLð
ð 
ð 	
r    )FF)r*   Ú	send_data)r�   rœ   s    @r   r4   r4   Ã   sA   ø€ ÝÔ)Ðð ?Dð<
ð <
ð <
ð <
ð <
ð <
ð| (…FÔÐÐr    rq   úUnion[Span, StreamedSpan]rp   r+   c                 ó0  — t          | t          ¦  «        rM|                      t          j        d¦  «         |                      t          j        |j        ¦  «         | j        }nL|                      t          j        d¦  «         |                      t          j	        |j        ¦  «         | j        } |t          j
        d¦  «          |t          j        |j        ¦  «          |t          j        |j        ¦  «          |t          j        |j        ¦  «         d S )NrM   rN   )r   r   Úset_attributer   ÚDB_SYSTEM_NAMEÚDB_NAMESPACErc   rl   ra   rb   rd   re   rf   rg   rh   ri   rj   )rq   rp   Úset_on_spans      r   rn   rn     sì   € Ý�$�Ñ%Ô%ð 	$Ø×Ò�8Ô2°LÑAÔAÐAØ×Ò�8Ô0°*Ô2EÑFÔFÐFàÔ(ˆˆà�Š•hÔ(¨,Ñ7Ô7Ð7Ø�Š•hÔ&¨
Ô(;Ñ<Ô<Ð<à”mˆà€K•Ô'Ð)<Ñ=Ô=Ð=Ø€K•Ô'¨¬Ñ9Ô9Ð9Ø€K•Ô$ j¤oÑ6Ô6Ð6Ø€K•Ô  *¤/Ñ2Ô2Ð2Ð2Ð2r    )r@   rA   r/   rA   r:   )rq   rŸ   rp   r+   r/   N)-ru   Útypingr   r   rT   Úsentry_sdk.constsr   r   Úsentry_sdk.integrationsr   r   r	   Úsentry_sdk.scoper
   Úsentry_sdk.tracesr   Úsentry_sdk.tracingr   Úsentry_sdk.tracing_utilsr   Úsentry_sdk.utilsr   r   Úcollections.abcr   r   r   r   r   r   r&   r.   r)   Úclickhouse_driver.clientr*   Úclickhouse_driver.connectionr+   ÚImportErrorr-   r>   r?   r2   r5   r4   rn   r$   r    r   ú<module>r±      sš  ðØ Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )à Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UÐ UØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø *Ð *Ð *Ð *Ð *Ð *Ø #Ð #Ð #Ð #Ð #Ð #Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø UÐ UÐ UÐ UÐ UÐ UÐ UÐ Uð
 ð Ø(Ð(Ð(Ð(Ð(Ð(Ø@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@ðð ð ð ð ñ ô ð ðð ð ð ð ñ ô ð ð
 ˆy‰{Œ{€Hð;Ø)Ð)Ð)Ð)Ð)Ð)Ø/Ð/Ð/Ð/Ð/Ð/ðð ð ð ð ð ð øð ð ;ð ;ð ;Ø
ˆ,Ð9Ñ
:Ô
:Ð:ð;øøøðAð Að Að Að A +ñ Aô Að Að2 €Iˆc�N„N€Ø€GˆC�L„L€ð>ð >ð >ð >ðB4ð 4ð 4ð 4ðnA(ð A(ð A(ð A(ðH3ð 3ð 3ð 3ð 3ð 3s   Á?B ÂB#