
    fi                        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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         j!        ddf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     y/var/www/html/Pagina-Ingenieria-Requisitos/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fr(   c                      t          t                     dt          j        dt          j        dt
          f fd            }|S )Nr   r   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-   rH   rC   rE   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   r&   r<   r   r   r=   )r>   rT   s   ` r   r,   r,   J   sX     ;Q??af  Q      @?: Mr   c                 R     dt           j        dt           j        dt          f fd}|S )Nr   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   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	   a   7x*NDAA#:#<#<k3///,..  
)) JNN733gDJ *                 
 KKMMM
s   ;B%%B),B))r<   r   r   r=   )r>   rb   s   ` r   r1   r1   l   sB    !& AH       $ 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 )NrO   rI   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(   re   )rZ   r-   rP   r	   r]   rK   
isinstancelisttupleextendrQ   )r   sample_blockrY   types_checkcolumnarr   r   rR   rk   ri   rj   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)rt   rs   s    @r   r0   r0      sO    *18B ?D 
  
  
  
  
  
D 1A#---r   rR   r-   c                 n   |                      t          j        d           |                      t          j        |j                   |                      t          j        |j                   |                      t          j        |j                   |                      t          j	        |j
                   d S )N
clickhouse)rQ   r   	DB_SYSTEMSERVER_ADDRESShostSERVER_PORTportDB_NAMEdatabaseDB_USERuser)rR   r-   s     r   rP   rP      s     	MM($l333MM():?;;;MM(&
888MM("J$7888MM("JO44444r   r8   )#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,   r1   r0   r-   r.   rP   r    r   r   <module>r      su       * * * * * * * * 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8AqD> hq!tn    D!Q$ HQTN    ,%A %A %A %AP5
5-8C5	5 5 5 5 5 5s   +A0 0B