
    ug?                        d dl Z d dlZd dlZd dlmZmZ  G d d ej                  dd      ej                        Zde	de
fdZd	e	de
fd
Z G d dej                  ej                  ej                  ej                         Zy)    N)
StatusCodeSpanKindc                       e Zd Zy)_ClientCallDetailsN)__name__
__module____qualname__     Z/var/www/openai/venv/lib/python3.12/site-packages/chromadb/telemetry/opentelemetry/grpc.pyr   r      s     	r   r   )methodtimeoutmetadatacredentialsspan_idreturnc                 h    t        j                  | j                  dd            j                         S )N   bigbinasciihexlifyto_bytesdecode)r   s    r   _encode_span_idr      s)    G,,Q67>>@@r   trace_idc                 h    t        j                  | j                  dd            j                         S )N   r   r   )r   s    r   _encode_trace_idr      s)    H--b%89@@BBr   c                   *    e Zd Zd Zd Zd Zd Zd Zy)OtelInterceptorc           	      v   ddl m} |	 |||      S |j                  d|j                   t        j
                        5 }|j                  r|j                  d d  ng }|j                  dt        |j                         j                        fdt        |j                         j                        fg       t        |j                  |j                  t        |      |j                         }	  |||      }t#        |d      r0|j%                         r |j'                  d|j%                                |j'                  d	|j)                         j*                  j-                                |j)                         t.        j0                  j2                  k7  r8|j5                  t0        j6                  t9        |j)                               
       |cd d d        S # t:        $ rK}	|j'                  dt9        |	             |j5                  t0        j6                  t9        |	      
        d }	~	ww xY w# 1 sw Y   y xY w)Nr   )tracerzRPC )kindzchroma-traceidzchroma-spaniddetailsz
rpc.detailzrpc.status_code)descriptionz	rpc.error) chromadb.telemetry.opentelemetryr#   start_as_current_spanr   r   CLIENTr   extendr   get_span_contextr   r   r   r   r   tupler   hasattrr%   set_attributecodenamelowergrpcr   OK
set_statusERRORstr	Exception)
selfcontinuationclient_call_detailsrequest_or_iteratorr#   spanr   new_client_detailsresultes
             r   _intercept_callzOtelInterceptor._intercept_call$   s   ;> 35HII))&--./hoo * 
 4G3O3O#,,Q/UW  OO )()>)>)@)I)IJ %od6K6K6M6U6U&VW "4#**#++h#//	"%&8:MN69-&..2B&&|V^^5EF""#4fkkm6H6H6N6N6PQ;;=DOO$6$66OOJ$4$4#fkkmBTOUA
 
B  "";A7
 0 0c!fE	C
 
s-    B,H/-C!G	H,!AH''H,,H//H8c                 (    | j                  |||      S Nr@   r8   r9   r:   requests       r   intercept_unary_unaryz%OtelInterceptor.intercept_unary_unaryP       ##L2EwOOr   c                 (    | j                  |||      S rB   rC   rD   s       r   intercept_unary_streamz&OtelInterceptor.intercept_unary_streamS   rG   r   c                 (    | j                  |||      S rB   rC   r8   r9   r:   request_iterators       r   intercept_stream_unaryz&OtelInterceptor.intercept_stream_unaryV        ##L2EGWXXr   c                 (    | j                  |||      S rB   rC   rK   s       r   intercept_stream_streamz'OtelInterceptor.intercept_stream_stream[   rN   r   N)r   r   r	   r@   rF   rI   rM   rP   r
   r   r   r!   r!      s     *XPPY
Yr   r!   )r   collectionsr2   opentelemetry.tracer   r   
namedtupleClientCallDetailsr   intr6   r   r   UnaryUnaryClientInterceptorUnaryStreamClientInterceptorStreamUnaryClientInterceptorStreamStreamClientInterceptorr!   r
   r   r   <module>rZ      s       4	KN 			AS AS ACs Cs C@Y$$%%%%&&	@Yr   