
    tni	                         d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	 d dl
mZ erd dl
mZmZ d dlmZ 	 d dlZd d	lmZmZmZ n# e$ r  ed
          w xY w G d dej                  ZdS )    N)OP)DidNotEnable)SPAN_ORIGIN)TransactionTransactionSource)TYPE_CHECKING)CallableOptional)Message)ServicerContextHandlerCallDetailsRpcMethodHandlerzgrpcio is not installedc                   f     e Zd Z	 d	 	 	 	 	 d fdZ	 	 	 	 	 	 	 	 ddZedddefd            Z xZS )ServerInterceptorNself	find_name*Optional[Callable[[ServicerContext], str]]returnc                 n    |pt           j        | _        t                                                       d S N)r   
_find_name_find_method_namesuper__init__)r   r   	__class__s     `/var/www/html/gpu-tools/venv/lib/python3.11/site-packages/sentry_sdk/integrations/grpc/server.pyr   zServerInterceptor.__init__   s2     "+!J.?.J    continuation0Callable[[HandlerCallDetails], RpcMethodHandler]handler_call_detailsr   r   c                       ||          rj         sS d fd}t          j        |j        j                  S )	Nrequestr   contextr   r   c                 D   t          j                    5                      |          }|rt          |                                          }t          j        |t          j        |t          j	        t                    }t          j        |          5  	                     | |          cd d d            cd d d            S # t          $ r}|d }~ww xY w# 1 swxY w Y   n"                    | |          cd d d            S 	 d d d            d S # 1 swxY w Y   d S )N)opnamesourceorigin)transaction)
sentry_sdkisolation_scoper   dictinvocation_metadatacontinue_tracer   GRPC_SERVERr   CUSTOMr   start_transactionunary_unaryBaseException)r"   r#   r&   metadatar)   ehandlerr   s         r   behaviorz5ServerInterceptor.intercept_service.<locals>.behavior&   s   +-- A A--g66 A#G$?$?$A$ABBH","; >!07*# # #K $5+NNN $ $$#*#6#6w#H#H$ $ $ $ $ $ $A A A A A A A A"  - $ $ $"#G$$ $ $ $ $ $ $ $ $ #..w@@)A A A A A A A A$A A A A A A A A A A A A A A A A A AsT   B DCC,D
CCCCC	D C	!DDD)request_deserializerresponse_serializer)r"   r   r#   r   r   r   )r2   grpcunary_unary_rpc_method_handlerr8   r9   )r   r   r    r7   r6   s   `   @r   intercept_servicez#ServerInterceptor.intercept_service   s    
 ,344 	g1 	N	A 	A 	A 	A 	A 	A 	A. 2!(!= ' ;
 
 
 	
r   r#   r   c                 H    | j         j        j                                        S r   )
_rpc_eventcall_detailsmethoddecode)r#   s    r   r   zServerInterceptor._find_nameC   s    !.5<<>>>r   r   )r   r   r   r   r   N)r   r   r   r   r    r   r   r   )	__name__
__module____qualname__r   r<   staticmethodstrr   __classcell__)r   s   @r   r   r      s         CG!? 
     $
!$
H$
 3$
 
	$
 $
 $
 $
L ?- ?# ? ? ? \? ? ? ? ?r   r   )r*   sentry_sdk.constsr   sentry_sdk.integrationsr   #sentry_sdk.integrations.grpc.constsr   sentry_sdk.tracingr   r   typingr   r	   r
   google.protobuf.messager   r:   r   r   r   ImportErrorr    r   r   <module>rP      s5                   0 0 0 0 0 0 ; ; ; ; ; ; = = = = = = = =             0))))))))//////2KKKJJJJJJJJJJJ 2 2 2
,0
1
1121? 1? 1? 1? 1?. 1? 1? 1? 1? 1?s   A A