
    tni                        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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 n$ G d
 d          Z G d d          Z e            Z	 d dl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)OPSPANDATA)_check_minimum_versionIntegrationDidNotEnable)Span)should_send_default_pii)capture_internal_exceptionsensure_integration_enabled)TYPE_CHECKINGTypeVar)Iterator)Any	ParamSpecCallablec                       e Zd Zd ZdS )r   c                 "    d | _         d | _        d S N)argskwargsself_s     f/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/sentry_sdk/integrations/clickhouse_driver.py__init__zParamSpec.__init__   s    DIDKKK    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"   z 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                  V   t          t          t          j                   t	          t          j        j        j                  t          j        j        _        t                       t          t          j
        j        j                  t          j
        j        _        t          t          j
        j        d          r7t          t          j
        j        j                  t          j
        j        _        t          t          j
        j        j                  t          j
        j        _        d S )Nreceive_end_of_insert_query)r   r&   r'   VERSION_wrap_start
connection
Connection
send_query_wrap_send_data	_wrap_endclientClientreceive_end_of_queryhasattrr*   receive_resultr    r   r   
setup_oncez&ClickhouseDriverIntegration.setup_once+   s    :<M<UVVV >I(3>>
 >
$/:
 	 @I$+@@
 @
 '< $+24QRR 	JS!(/KK K$+G :C$+::
 :
 '666r   r(   N)r   r   r   
identifieroriginstaticmethodr7   r    r   r   r&   r&   '   sD        $J$
$$F
 
 
 \
 
 
r   r&   PTfCallable[P, T]r(   c                 J     t          t                     d fd            }|S )	Nr   P.argsr   P.kwargsr(   r=   c                  $   | d         }| d         }t          |           dk    r| d         n|                    d          }t          |           dk    r| d         n|                    d          }t          j        t          j        |t          j                  }||_        t          ||           |
                    d|           |r|
                    d	|           |r$t                      r|
                    d
|            | i |}|S )Nr         query_id   params)opnamer:   queryzdb.query_id	db.params)lenget
sentry_sdk
start_spanr   DBr&   r:   _sentry_span_set_db_dataset_datar	   )	r   r   r-   rK   rF   rH   spanretr>   s	           r   _innerz_wrap_start.<locals>._innerK   s   !W
Q!$ii!mm477J1G1GIIMMavzz(/C/C$u.5
 
 
 #'
T:&&&gu%%% 	3MM-222 	/-// 	/MM+v... a   
r   r   rA   r   rB   r(   r=   )r   r&   )r>   rW   s   ` r   r,   r,   J   s?     ;Q??     @?: Mr   c                      d fd}|S )	Nr   rA   r   rB   r(   r=   c                      | i |}| d         }t          |j        dd           }||$t                      r|                    d|           t	                      5  |j                            |j                            d          d|j                   d d d            n# 1 swxY w Y   |	                                 |S )Nr   rR   z	db.resultrK   )messagecategorydata)
getattrr-   r	   rT   r
   scopeadd_breadcrumb_datapopfinish)r   r   resinstancerU   r>   s        r   
_inner_endz_wrap_end.<locals>._inner_endm   s	   a   7x*NDAA#:#<#<k3///,..  
)) JNN733gDJ *                 
 KKMMM
s   ;B%%B),B)rX   r    )r>   rf   s   ` r   r1   r1   l   s)         $ r   c                  n    t           j        j        j        	 dfd	} | t           j        j        _        d S )NFc                   	
 t          | j        dd           }|t          || j                   t                      rv|j                            dg           	t          |t          t          f          r		                    |           n|
d	
fd} |            }|
                    d	            | ||||g|R i |S )NrR   rL   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?      $- ' 'D%,,T222"&JJJJ' 'r   )r(   ri   )r^   r-   rS   r	   ra   rN   
isinstancelisttupleextendrT   )r   sample_blockr]   types_checkcolumnarr   r   rU   ro   rm   rn   original_send_datas            @@r   _inner_send_dataz)_wrap_send_data.<locals>._inner_send_data   s
    t==t///&(( 6 JNN;;;	dT5M22 /$$T**** !%I
' ' ' ' ' ' ' -,..Dk9555!!,k8
>B
 
 
FL
 
 	
r   )FF)r'   r2   r3   	send_data)rx   rw   s    @r   r0   r0      sO    *18B ?D 
  
  
  
  
  
D 1A#---r   rU   r   r-   'clickhouse_driver.connection.Connectionc                 n   |                      t          j        d           |                      t          j        |j                   |                      t          j        |j                   |                      t          j        |j                   |                      t          j	        |j
                   d S )N
clickhouse)rT   r   	DB_SYSTEMSERVER_ADDRESShostSERVER_PORTportDB_NAMEdatabaseDB_USERuser)rU   r-   s     r   rS   rS      s     	MM($l333MM():?;;;MM(&
888MM("J$7888MM("JO44444r   )r>   r?   r(   r?   r8   )rU   r   r-   rz   r(   N)!rO   sentry_sdk.constsr   r   sentry_sdk.integrationsr   r   r   sentry_sdk.tracingr   sentry_sdk.scoper	   sentry_sdk.utilsr
   r   typingr   r   collections.abcr   r   r   r   r"   r'   ImportErrorr&   r<   r=   r,   r1   r0   rS   r    r   r   <module>r      s3       * * * * * * * * U U U U U U U U U U # # # # # # 4 4 4 4 4 4 T T T T T T T T ) ) ) ) ) ) ) )
  ((((((///////////              
 y{{H; ; ; ;
,9
:
::;
 
 
 
 
+ 
 
 
> IcNNGCLL   D   ,%A %A %A %AP5
5G5	5 5 5 5 5 5s   +A0 0B