
    `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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)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     }/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/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"   )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hasattrr-   receive_resultr    r   r   
setup_oncez&ClickhouseDriverIntegration.setup_once-   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staticmethodr5   r    r   r   r)   r)   )   sJ        $J$
$$FA A A \A A A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namer8   queryzdb.query_id	db.params)lenget
sentry_sdk
start_spanr   DBr)   r8   _sentry_span_set_db_dataset_datar	   )	r   r   
connectionrI   rD   rF   spanretr<   s	           r   _innerz_wrap_start.<locals>._innerG   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   r)   )r<   rV   s   ` r   r.   r.   F   s?     ;Q??     @?: Mr   c                      d fd}|S )	Nr   r?   r   r@   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   rP   z	db.resultrI   )messagecategorydata)
getattrrS   r	   rR   r
   scopeadd_breadcrumb_datapopfinish)r   r   resinstancerT   r<   s        r   
_inner_endz_wrap_end.<locals>._inner_endi   s	   a   7x*NDAA#:#<#<k3///,..  
)) JNN733gDJ *                 
 KKMMM
s   ;B%%B),B)rW   r    )r<   re   s   ` r   r1   r1   h   s)         $ r   c                  F    t           j        	 dfd	} | t           _        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 )NrP   rJ   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+   rh   )r]   rS   rQ   r	   r`   rL   
isinstancelisttupleextendrR   )r   sample_blockr\   types_checkcolumnarr   r   rT   rn   rl   rm   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&   	send_data)rw   rv   s    @r   r0   r0   ~   sA    ) ?D 
  
  
  
  
  
D (Fr   rT   r   rS   r'   c                 n   |                      t          j        d           |                      t          j        |j                   |                      t          j        |j                   |                      t          j        |j                   |                      t          j	        |j
                   d S )N
clickhouse)rR   r   	DB_SYSTEMSERVER_ADDRESShostSERVER_PORTportDB_NAMEdatabaseDB_USERuser)rT   rS   s     r   rQ   rQ      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=   r6   )rT   r   rS   r'   r+   N)&rM   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*   r%   clickhouse_driver.clientr&   clickhouse_driver.connectionr'   ImportErrorr)   r:   r;   r.   r1   r0   rQ   r    r   r   <module>r      sI       * * * * * * * * 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;))))))//////7777777 ; ; ;
,9
:
::;A A A A A+ A A A2 IcNNGCLL   D   ,%( %( %( %(P5 5 5 5 5 5s   +A> >B