
    gh                        S SK r S SKJrJr  S SKJrJrJr  S SKJ	r	  S SK
Jr  S SKJrJr  S SKJrJr  \(       a  S SKJr  S S	KJrJrJr  O " S
 S5      r " S S5      r\" 5       r S SKr " S S\5      r\" S5      r\" S5      rS\\\4   S\\\4   4S jrS\\\4   S\\\4   4S jrSS jrS\	S\R@                  RB                  SS4S jr"g! \ a	    \" S5      ef = f)    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                       \ rS rSrS rSrg)r      c                      S U l         S U l        g Nargskwargsself_s     l/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/sentry_sdk/integrations/clickhouse_driver.py__init__ParamSpec.__init__   s    DIDK    r   N)__name__
__module____qualname____firstlineno__r   __static_attributes__ r   r   r   r      s    	r   r   c                       \ rS rSrS rSrg)	_Callable   c                     g r   r%   r   s     r   __getitem___Callable.__getitem__   s    r   r%   N)r    r!   r"   r#   r*   r$   r%   r   r   r'   r'      s    	r   r'   z clickhouse-driver not installed.c                   6    \ rS rSrSrS\ 3r\SS j5       rSrg)ClickhouseDriverIntegration'   clickhouse_driverzauto.db.Nc                     [        [        [        R                  5        [	        [        R
                  R                  R                  5      [        R
                  R                  l        [        5         [        [        R                  R                  R                  5      [        R                  R                  l        [        [        R                  R                  S5      (       aJ  [        [        R                  R                  R                  5      [        R                  R                  l        [        [        R                  R                  R                  5      [        R                  R                  l        g )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hasattrr1   receive_resultr%   r   r   
setup_once&ClickhouseDriverIntegration.setup_once+   s   :<M<U<UV >I((33>>>
$$//:
 	 @I$$++@@@
  ''< $++224QRRJS!((//KKK$$++G :C$$++:::
  ''6r   r%   returnN)	r    r!   r"   r#   
identifieroriginstaticmethodr>   r$   r%   r   r   r-   r-   '   s%    $J
|$F
 
r   r-   PTfrA   c                    ^  [        [        T 5      S[        R                  S[        R                  S[
        4U 4S jj5       nU$ )Nr   r   rA   c                    > U S   nU S   n[        U 5      S:  a  U S   OUR                  S5      n[        U 5      S:  a  U S   OUR                  S5      n[        R                  " [        R
                  U[        R                  S9nXbl        [        Xb5        UR                  SU5        U(       a  UR                  S	U5        U(       a!  [        5       (       a  UR                  S
U5        T" U 0 UD6nU$ )Nr         query_id   params)opnamerC   queryzdb.query_id	db.params)lenget
sentry_sdk
start_spanr   DBr-   rC   _sentry_span_set_db_dataset_datar	   )	r   r   r4   rQ   rL   rN   spanretrG   s	           r   _inner_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-   rE   r   r   rF   )rG   r]   s   ` r   r3   r3   J   sB     ;Q?aff  Q  @: Mr   c                 d   ^  S[         R                  S[         R                  S[        4U 4S jjnU$ )Nr   r   rA   c                    > T" U 0 UD6nU S   n[        UR                  SS 5      nUb  Ub!  [        5       (       a  UR                  SU5        [	        5          UR
                  R                  UR                  R                  S5      SUR                  S9  S S S 5        UR                  5         U$ ! , (       d  f       N = f)Nr   rX   z	db.resultrQ   )messagecategorydata)
getattrr4   r	   rZ   r
   scopeadd_breadcrumb_datapopfinish)r   r   resinstancer[   rG   s        r   
_inner_end_wrap_end.<locals>._inner_endm   s      7x**NDA#:#<#<k3/,.

)) JJNN73gDJJ *  /
 KKM
 /.s   ?B00
B>)rE   r   r   rF   )rG   rl   s   ` r   r8   r8   l   s-    !&& AHH  $ r   c                     ^ [         R                  R                  R                  m SU4S jjn U [         R                  R                  l        g )Nc                 z  >^	^
 [        U R                  SS 5      nUb  [        XpR                  5        [        5       (       am  UR                  R                  S/ 5      m	[        U[        [        45      (       a  T	R                  U5        OUm
SU	U
4S jjnU" 5       nUR                  ST	5        T" XX#U/UQ70 UD6$ )NrX   rR   c               3   J   >#    T H  n TR                  U 5        U v   M     g 7fr   )append)item	db_params	orig_datas    r   wrapped_generatorD_wrap_send_data.<locals>._inner_send_data.<locals>.wrapped_generator   s#     $-D%,,T2"&J %.s    #)rA   zIterator[Any])rd   r4   rY   r	   rg   rT   
isinstancelisttupleextendrZ   )r   sample_blockrc   types_checkcolumnarr   r   r[   ru   rs   rt   original_send_datas            @@r   _inner_send_data)_wrap_send_data.<locals>._inner_send_data   s     t=/&(( JJNN;;	dT5M22$$T* !%I
' ' -.Dk95!8
>B
FL
 	
r   )FF)r/   r9   r:   	send_data)r   r~   s    @r   r7   r7      s?    *1188BB ?D 
D 1A##-r   r[   r4   c                    U R                  [        R                  S5        U R                  [        R                  UR                  5        U R                  [        R
                  UR                  5        U R                  [        R                  UR                  5        U R                  [        R                  UR                  5        g )N
clickhouse)rZ   r   	DB_SYSTEMSERVER_ADDRESShostSERVER_PORTportDB_NAMEdatabaseDB_USERuser)r[   r4   s     r   rY   rY      sz     	MM($$l3MM()):??;MM(&&
8MM(""J$7$78MM(""JOO4r   r@   )#rU   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-   rE   rF   r3   r8   r7   r4   r5   rY   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 