
    lh                        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 G d de      Z ed      Z ed      Zdeeef   deeef   fdZdeeef   deeef   fdZddZde	dej@                  jB                  ddfdZ"y# e$ r	  ed      w xY w)    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y)r   c                      d | _         d | _        y N)argskwargsself_s     {/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/sentry_sdk/integrations/clickhouse_driver.py__init__zParamSpec.__init__   s    DIDK    N)__name__
__module____qualname__r    r   r   r   r      s    	r   r   c                       e Zd Zd Zy)	_Callablec                      y r   r    r   s     r   __getitem__z_Callable.__getitem__   s    r   N)r   r   r   r$   r    r   r   r"   r"      s    	r   r"   z clickhouse-driver not installed.c                   ,    e Zd ZdZde Zedd       Zy)ClickhouseDriverIntegrationclickhouse_driverzauto.db.Nc                     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      rJt        t        j                  j                  j                        t        j                  j                  _        t        t        j                  j                  j                        t        j                  j                  _        y )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<UV >I((33>>>
$$//:
 	 @I$$++@@@
  ''< $++224QRJS!((//KKK$$++G :C$$++:::
  ''6r   returnN)r   r   r   
identifieroriginstaticmethodr6   r    r   r   r&   r&   '   s%    $J
|$F
 
r   r&   PTfr8   c                      t        t               dt        j                  dt        j                  dt
        f fd       }|S )Nr   r   r8   c                     | d   }| d   }t        |       dkD  r| d   n|j                  d      }t        |       dkD  r| d   n|j                  d      }t        j                  t        j
                  |t        j                        }||_        t        ||       |j                  d|       |r|j                  d	|       |rt               r|j                  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,   rH   rC   rE   spanretr>   s	           r   _innerz_wrap_start.<locals>._innerK   s    !W
Q!$i!m47J1GIMavzz(/C$$uu.55
 #'
T:&gu%MM-2-/MM+v.   
r   )r   r&   r<   r   r   r=   )r>   rT   s   ` r   r+   r+   J   sB     ;Q?aff  Q  @: Mr   c                 `     dt         j                  dt         j                  dt        f fd}|S )Nr   r   r8   c                  p    | i |}| d   }t        |j                  dd       }||t               r|j                  d|       t	               5  |j
                  j                  |j                  j                  d      d|j                         d d d        |j                          |S # 1 sw Y   xY w)Nr   rO   z	db.resultrH   )messagecategorydata)
getattrr,   r	   rQ   r
   scopeadd_breadcrumb_datapopfinish)r   r   resinstancerR   r>   s        r   
_inner_endz_wrap_end.<locals>._inner_endm   s      7x**NDA#:#<k3/,. 

)) JJNN73gDJJ * 
 KKM
 s   AB,,B5)r<   r   r   r=   )r>   rb   s   ` r   r0   r0   l   s-    !&& AHH  $ r   c                      t         j                  j                  j                  	 dfd	} | t         j                  j                  _        y )Nc                 f  	
 t        | j                  dd       }|t        || j                         t               rf|j                  j                  dg       	t        |t        t        f      r	j                  |       n|
d	
fd} |       }|j                  d	        | ||||g|i |S )NrO   rI   c               3   F   K   D ]  } j                  |        |   y wr   )append)item	db_params	orig_datas    r   wrapped_generatorzD_wrap_send_data.<locals>._inner_send_data.<locals>.wrapped_generator   s)     $- 'D%,,T2"&J's   !)r8   zIterator[Any])rZ   r,   rP   r	   r]   rK   
isinstancelisttupleextendrQ   )r   sample_blockrY   types_checkcolumnarr   r   rR   rj   rh   ri   original_send_datas            @@r   _inner_send_dataz)_wrap_send_data.<locals>._inner_send_data   s     t=t/&( JJNN;;	dT5M2$$T* !%I
' -.Dk95!,k8
>B
FL
 	
r   )FF)r'   r1   r2   	send_data)rs   rr   s    @r   r/   r/      s?    *1188BB ?D 
D 1A##-r   rR   r,   c                    | j                  t        j                  d       | j                  t        j                  |j                         | j                  t        j
                  |j                         | j                  t        j                  |j                         | j                  t        j                  |j                         y )N
clickhouse)rQ   r   	DB_SYSTEMSERVER_ADDRESShostSERVER_PORTportDB_NAMEdatabaseDB_USERuser)rR   r,   s     r   rP   rP      sz     	MM($$l3MM()):??;MM(&&
8MM(""J$7$78MM(""JOO4r   r7   )#rL   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+   r0   r/   r,   r-   rP   r    r   r   <module>r      s    * U U # 4 T )
 (//  
 {H;
+ 
> cNCL8AqD> hq!tn D!Q$ HQTN ,%AP5
5-88CC5	5O  ;
9
::;s   "C C