
    Zi                         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dS )    N)
StatusCodeSpanKindc                       e Zd ZdS )_ClientCallDetailsN)__name__
__module____qualname__     b/root/projects/butler/venv/lib64/python3.11/site-packages/chromadb/telemetry/opentelemetry/grpc.pyr   r      s         	Dr   r   )methodtimeoutmetadatacredentialsspan_idreturnc                 v    t          j        |                     dd                                                    S )N   bigbinasciihexlifyto_bytesdecode)r   s    r   _encode_span_idr      s/    G,,Q6677>>@@@r   trace_idc                 v    t          j        |                     dd                                                    S )N   r   r   )r   s    r   _encode_trace_idr      s/    H--b%8899@@BBBr   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )OtelInterceptorc           	      2   ddl m} | |||          S |                    d|j         t          j                  5 }|j        r|j        d d          ng }|                    dt          |	                                j
                  fdt          |	                                j                  fg           t          |j        |j        t          |          |j                  }	  |||          }t#          |d          r<|                                r(|                    d|                                           |                    d	|                                j                                                   |                    d
|                                j        d                    |                                t0          j        j        k    r@|                    t2          j        t;          |                                                     |cd d d            S # t<          $ rW}	|                    dt;          |	                     |                    t2          j        t;          |	                      d }	~	ww xY w# 1 swxY w Y   d S )Nr   )tracerzRPC )kindzchroma-traceidzchroma-spaniddetailsz
rpc.detailzrpc.status_codezrpc.status_code_value)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value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I))/&-//ho * 
 
 &	 4G3OW#,QQQ//UW  OO )()>)>)@)@)IJJ %od6K6K6M6M6U&V&VW   "4#*#+h#/	" "%&8:MNN69-- G&..2B2B G&&|V^^5E5EFFF""#4fkkmm6H6N6N6P6PQQQ""#:FKKMM<OPQ<RSSS;;==DO$666OOJ$4#fkkmmBTBTOUUUC&	 &	 &	 &	 &	 &	 &	 &	D    "";A777
 0c!ffEEE	E&	 &	 &	 &	 &	 &	 &	 &	 &	 &	s2   B*J)D2H((
J	2AJJ		JJJc                 0    |                      |||          S NrA   r9   r:   r;   requests       r   intercept_unary_unaryz%OtelInterceptor.intercept_unary_unaryQ       ##L2EwOOOr   c                 0    |                      |||          S rC   rD   rE   s       r   intercept_unary_streamz&OtelInterceptor.intercept_unary_streamT   rH   r   c                 0    |                      |||          S rC   rD   r9   r:   r;   request_iterators       r   intercept_stream_unaryz&OtelInterceptor.intercept_stream_unaryW        ##L2EGWXXXr   c                 0    |                      |||          S rC   rD   rL   s       r   intercept_stream_streamz'OtelInterceptor.intercept_stream_stream\   rO   r   N)r   r   r	   rA   rG   rJ   rN   rQ   r
   r   r   r!   r!      sn        + + +ZP P PP P PY Y Y
Y Y Y Y Yr   r!   )r   collectionsr3   opentelemetry.tracer   r   
namedtupleClientCallDetailsr   intr7   r   r   UnaryUnaryClientInterceptorUnaryStreamClientInterceptorStreamUnaryClientInterceptorStreamStreamClientInterceptorr!   r
   r   r   <module>r[      s1         4 4 4 4 4 4 4 4	 	 	 	 	KN  			 	 	AS AS A A A ACs Cs C C C CAY AY AY AY AY$%%&	AY AY AY AY AYr   