
    \jt	                         d dl Z d dlmZ d dlmZ d dlmZ d dl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  G d dej(                        Zy# e$ r	  ed
      w xY w)    N)OP)DidNotEnable)SPAN_ORIGIN)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 xZS )ServerInterceptorc                 0    || _         t        | 	          y N)_custom_find_namesuper__init__)self	find_name	__class__s     M/root/env/lib/python3.12/site-packages/sentry_sdk/integrations/grpc/server.pyr   zServerInterceptor.__init__   s     "+    c                      ||      rj                   sS |j                  | j                  dfd}t        j                  |j
                  j                        S )Nc                    t        j                         5  r |      n}|rt        |j                               }t        j                  |t
        j                  |t        j                  t              }t        j                  |      5  	 j                  | |      cd d d        cd d d        S j                  | |      cd d d        S # t        $ r}|d }~ww xY w# 1 sw Y   nxY w	 d d d        y # 1 sw Y   y xY w)N)opnamesourceorigin)transaction)
sentry_sdkisolation_scopedictinvocation_metadatacontinue_tracer   GRPC_SERVERr   CUSTOMr   start_transactionunary_unaryBaseException)	requestcontextr   metadatar    ecustom_find_namehandlermethod_names	         r   behaviorz5ServerInterceptor.intercept_service.<locals>.behavior)   s    ++- A4D'0+#G$?$?$ABH",";"; >>!077*#K $55+N $$#*#6#6w#H$ $A A( #..w@)A A"  - $"#G$$ $ $A A AsH   A8C8C"C!	C84C8	CCCC""C+	'C88D)request_deserializerresponse_serializer)r+   r
   r,   r   returnr
   )r)   methodr   grpcunary_unary_rpc_method_handlerr3   r4   )r   continuationhandler_call_detailsr2   r/   r0   r1   s       @@@r   intercept_servicez#ServerInterceptor.intercept_service   sg    
 34g11N*1111	A. 22!(!=!= ' ; ;
 	
r   r   )r   r   r   z*Optional[Callable[[ServicerContext], str]]r5   N)r   r   r9   z0Callable[[HandlerCallDetails], RpcMethodHandler]r:   r   r5   r   )__name__
__module____qualname__r   r;   __classcell__)r   s   @r   r   r      sR     CG!? 
'
!'
H'
 3'
 
	'
r   r   )r!   sentry_sdk.constsr   sentry_sdk.integrationsr   #sentry_sdk.integrations.grpc.constsr   sentry_sdk.tracingr   typingr   r   r	   google.protobuf.messager
   r7   r   r   r   ImportErrorr    r   r   <module>rH      s]       0 ; 0  )/2JJ
0
.. 0
	  2
0
112s   A A&