
    Uvh                        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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eeef   deeef   fdZde	dej:                  j<                  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)	ParamSpecCallablec                       e Zd Zd Zy)r   c                      d | _         d | _        y N)argskwargsself_s     d/opt/face_recognition/venv/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                  l   t        t        t        j                         t	        t        j
                  j                  j                        t        j
                  j                  _        t        t        j                  j                  j                        t        j                  j                  _        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clientClient	send_data	_wrap_endreceive_end_of_queryhasattrr'   receive_resultr   r   r   
setup_oncez&ClickhouseDriverIntegration.setup_once*   s(   :<M<U<UV >I((33>>>
$$//:
 5D$$++555
  ''1 @I$$++@@@
  ''< $++224QRJS!((//KKK$$++G :C$$++:::
  ''6r   )returnN)r   r   r   
identifieroriginstaticmethodr5   r   r   r   r$   r$   &   s%    $J
|$F
 
r   r$   PTfr6   c                      t        t               dt        j                  dt        j                  dt
        f fd       }|S )Nr   r   r6   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namer8   queryzdb.query_id	db.params)lenget
sentry_sdk
start_spanr   DBr$   r8   _sentry_span_set_db_dataset_datar	   )	r   r   r*   rF   rA   rC   spanretr<   s	           r   _innerz_wrap_start.<locals>._innerL   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<   rR   s   ` r   r)   r)   K   sB     ;Q?aff  Q  @: Mr   c                 `     dt         j                  dt         j                  dt        f fd}|S )Nr   r   r6   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   rM   z	db.resultrF   )messagecategorydata)
getattrr*   r	   rO   r
   scopeadd_breadcrumb_datapopfinish)r   r   resinstancerP   r<   s        r   
_inner_endz_wrap_end.<locals>._inner_endn   s      7x**NDA#:#<k3/,. 

)) JJNN73gDJJ * 
 KKM
 s   AB,,B5r:   r   r   r;   )r<   r`   s   ` r   r1   r1   m   s-    !&& AHH  $ r   c                 `     dt         j                  dt         j                  dt        f fd}|S )Nr   r   r6   c                     | d   }| d   }t        |j                  dd       }|_t        ||j                         t               r?|j                  j                  dg       }|j                  |       |j                  d|        | i |S )Nr   r@   rM   rG   )rX   r*   rN   r	   r[   rI   extendrO   )r   r   r_   rW   rP   	db_paramsr<   s         r   _inner_send_dataz)_wrap_send_data.<locals>._inner_send_data   s    7Awx**NDAx223&( JJNN;;	  &k95$!&!!r   ra   )r<   rf   s   ` r   r-   r-      s-    " "!(( "q " r   rP   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)rO   r   	DB_SYSTEMSERVER_ADDRESShostSERVER_PORTportDB_NAMEdatabaseDB_USERuser)rP   r*   s     r   rN   rN      sz     	MM($$l3MM()):??;MM(&&
8MM(""J$7$78MM(""JOO4r   ) rJ   sentry_sdk.constsr   r   sentry_sdk.integrationsr   r   r   sentry_sdk.tracingr   sentry_sdk.scoper	   sentry_sdk.utilsr
   r   typingr   r   r   r   r    r%   ImportErrorr$   r:   r;   r)   r1   r-   r*   r+   rN   r   r   r   <module>ry      s    * U U # 4 T )
 **  
 {H;
+ 
B cNCL8AqD> hq!tn D!Q$ HQTN ,x1~ (1a4. &5
5-88CC5	5i  ;
9
::;s   C C