§
    xÅjf  ã                   ó  — d dl mZ 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 d dlmZ d d	lmZ erd d
lmZmZ d dl mZmZ 	 d dlZd dlmZmZ d dlmZmZ n# e$ r  ed¦  «        ‚w xY w G d„ dej        j        ¦  «        ZdS )é    )ÚTYPE_CHECKINGN)ÚOP)ÚDidNotEnable)ÚSPAN_ORIGIN)ÚSegmentNameSource)ÚTransactionSource)Úhas_span_streaming_enabled)Úevent_from_exception)Ú	AwaitableÚCallable)ÚAnyÚOptional)ÚHandlerCallDetailsÚRpcMethodHandler)Ú
AbortErrorÚServicerContextzgrpcio is not installedc                   óF   ‡ — e Zd Z	 d	 	 	 	 	 dˆ fd„Z	 	 	 	 	 	 	 	 dd„Zˆ xZS )ÚServerInterceptorNÚselfÚ	find_nameú'Callable[[ServicerContext], str] | NoneÚreturnc                 óV   •— || _         t          ¦   «                              ¦   «          d S ©N)Ú_custom_find_nameÚsuperÚ__init__)r   r   Ú	__class__s     €úXC:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/integrations/grpc/aio/server.pyr   zServerInterceptor.__init__   s)   ø€ ð "+ˆÔå‰Œ×ÒÑÔÐÐÐó    Úcontinuationú;Callable[[HandlerCallDetails], Awaitable[RpcMethodHandler]]Úhandler_call_detailsr   ú%Optional[Awaitable[RpcMethodHandler]]c              ƒ   óŒ  ‡‡‡K  —  ||¦  «        ƒ d {V —†Š‰€d S |j         Š| j        Š‰j        s‰j        st          j        }dˆˆˆfd„}nb‰j        s‰j        rt          j        }dˆfd„}nA‰j        r‰j        st          j        }dˆfd„}n ‰j        r‰j        rt          j        }dˆfd	„} ||‰j	        ‰j
        ¬
¦  «        S )NÚrequestr   Úcontextr   r   c           	   “   ó  •K  — t          j        ¦   «         5  ‰r ‰|¦  «        n‰
}|s ‰	| |¦  «        ƒ d {V —†cd d d ¦  «         S t          t          j        ¦   «         j        ¦  «        }|�rt           j                             t          |                     ¦   «         ¦  «        ¦  «         t           j         	                    |t          j        t          j        j        t          dœd ¬¦  «        5  	 ‰	                     | |¦  «        ƒ d {V —†	 cd d d ¦  «         cd d d ¦  «         S # t"          $ r ‚ t$          $ r3}t'          |dddœ¬¦  «        \  }}t          j        ||¬¦  «         ‚ d }~ww xY w# 1 swxY w Y   nòt          j        t          |                     ¦   «         ¦  «        t          j        |t*          j        t          ¬¦  «        }t          j        |¬	¦  «        5  	 ‰	                     | |¦  «        ƒ d {V —†	 cd d d ¦  «         cd d d ¦  «         S # t"          $ r ‚ t$          $ r3}t'          |dddœ¬¦  «        \  }}t          j        ||¬¦  «         ‚ d }~ww xY w# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )
N)z	sentry.opzsentry.segment.name.sourcezsentry.origin)ÚnameÚ
attributesÚparent_spanÚgrpcF)ÚtypeÚhandled)Ú	mechanism)Úhint)Úopr)   ÚsourceÚorigin)Útransaction)Ú
sentry_sdkÚisolation_scoper	   Ú
get_clientÚoptionsÚtracesÚcontinue_traceÚdictÚinvocation_metadataÚ
start_spanr   ÚGRPC_SERVERr   ÚCUSTOMÚvaluer   Úunary_unaryr   Ú	Exceptionr
   Úcapture_eventr   Ústart_transaction)r&   r'   r)   Úspan_streamingÚexcÚeventr0   r4   Úcustom_find_nameÚhandlerÚmethod_names           €€€r   Úwrappedz4ServerInterceptor.intercept_service.<locals>.wrapped1   s,  øè è € ÝÔ/Ñ1Ô1ð 9&ð 9&à5EÐVÐ(Ð(¨Ñ1Ô1Ð1È;ð ð  ð ?Ø%, W¨W°gÑ%>Ô%>Ð>Ð>Ð>Ð>Ð>Ð>ð9&ð 9&ð 9&ð 9&ñ 9&ô 9&ð 9&ð 9&õ &@Ý"Ô-Ñ/Ô/Ô7ñ&ô &�Nð &ñ /&å"Ô)×8Ò8Ý  ×!<Ò!<Ñ!>Ô!>Ñ?Ô?ñô ð õ (Ô.×9Ò9Ø!%å-/¬^Ý>OÔ>VÔ>\Ý1<ð(ð (ð
 )-ð :ñ ô ð &ð &ð
&Ø-4×-@Ò-@ÀÈ'Ñ-RÔ-RÐ'RÐ'RÐ'RÐ'RÐ'RÐ'RÐ Rð&ð &ð &ð &ñ &ô &ð &ð!9&ð 9&ð 9&ð 9&ñ 9&ô 9&ð 9&ð 9&øõ6 $.ð &ð &ð &Ø %Ý#,ð &ð &ð &Ý.BØ$'Ø7=È%Ð.PÐ.Pð/"ñ /"ô /"¡  tõ !+Ô 8¸ÀTÐ JÑ JÔ JÐ JØ %øøøøð&øøøð&ð &ð &ð &øøøð &ð &ð &ð &ð &õ, '1Ô&?Ý  ×!<Ò!<Ñ!>Ô!>Ñ?Ô?Ý!œ~Ø!%Ý#4Ô#;Ý#.ð'ñ 'ô '˜õ (Ô9ÀkÐRÑRÔRð &ð &ð
&Ø-4×-@Ò-@ÀÈ'Ñ-RÔ-RÐ'RÐ'RÐ'RÐ'RÐ'RÐ'RÐ Rð&ð &ð &ð &ñ &ô &ð &ð]9&ð 9&ð 9&ð 9&ñ 9&ô 9&ð 9&ð 9&øõb $.ð &ð &ð &Ø %Ý#,ð &ð &ð &Ý.BØ$'Ø7=È%Ð.PÐ.Pð/"ñ /"ô /"¡  tõ !+Ô 8¸ÀTÐ JÑ JÔ JÐ JØ %øøøøð&øøøð&ð &ð &ð &øøøð &ð &ð &ð &ð]9&ð 9&ð 9&ñ 9&ô 9&ð 9&ð 9&ð 9&ð 9&ð 9&ð 9&ð 9&øøøð 9&ð 9&ð 9&ð 9&ð 9&ð 9&s�   —#I=ÁB*I=Ã1E2Ã3D(ÄI=Ä(E/Ä<.E*Å*E/Å/E2Å2E6	Å6I=Å9E6	Å:A*I=Ç$I%Ç&HÈI=ÈI"È/.IÉI"É"I%É%I)	É)I=É,I)	É-I=É=JÊJc                óT   •K  — ‰                      | |¦  «        2 3 d {V —†}|W V — Œ6 d S r   )Úunary_stream©r&   r'   ÚrrI   s      €r   rK   z4ServerInterceptor.intercept_service.<locals>.wrappedp   sX   øè è € Ø&×3Ò3°G¸WÑEÔEð ð ð ð ð ð ð ˜!Ø�G�G�G�G�Gð  FÐEÐEó   š'c              “   óD   •K  — ‰                      | |¦  «        }|ƒ d {V —†S r   )Ústream_unary)r&   r'   ÚresponserI   s      €r   rK   z4ServerInterceptor.intercept_service.<locals>.wrappedw   s.   øè è € Ø"×/Ò/°¸ÑAÔA�Ø%�~�~�~�~�~�~Ð%r    c                óT   •K  — ‰                      | |¦  «        2 3 d {V —†}|W V — Œ6 d S r   )Ústream_streamrN   s      €r   rK   z4ServerInterceptor.intercept_service.<locals>.wrapped~   sX   øè è € Ø&×4Ò4°W¸gÑFÔFð ð ð ð ð ð ð ˜!Ø�G�G�G�G�Gð  GÐFÐFrP   )Úrequest_deserializerÚresponse_serializer)r&   r   r'   r   r   r   )Úmethodr   Úrequest_streamingÚresponse_streamingr,   Úunary_unary_rpc_method_handlerÚunary_stream_rpc_method_handlerÚstream_unary_rpc_method_handlerÚ stream_stream_rpc_method_handlerrV   rW   )r   r!   r#   Úhandler_factoryrK   rH   rI   rJ   s        @@@r   Úintercept_servicez#ServerInterceptor.intercept_service"   s€  øøøè è € ð
 %˜Ð%9Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:ˆØˆ?Ø�4à*Ô1ˆØÔ1ÐàÔ(ð R	°Ô1Kð R	Ý"ÔAˆOð:&ð :&ð :&ð :&ð :&ð :&ð :&ð :&ð :&ðx Ô*ð 	¨wÔ/Ið 	Ý"ÔBˆOðð ð ð ð ð ð ð Ô&ð 	¨wÔ/Ið 	Ý"ÔBˆOð&ð &ð &ð &ð &ð &ð &ð Ô&ð 	¨7Ô+Eð 	Ý"ÔCˆOðð ð ð ð ð ð ˆØØ!(Ô!=Ø 'Ô ;ð
ñ 
ô 
ð 	
r    r   )r   r   r   r   r   N)r   r   r!   r"   r#   r   r   r$   )Ú__name__Ú
__module__Ú__qualname__r   r`   Ú__classcell__)r   s   @r   r   r      s¢   ø€ € € € € ð @DðØ!ðà<ðð 
ðð ð ð ð ð ðd
Ø!ðd
àSðd
ð 3ðd
ð 
1ð	d
ð d
ð d
ð d
ð d
ð d
ð d
ð d
r    r   )Útypingr   r5   Úsentry_sdk.constsr   Úsentry_sdk.integrationsr   Ú#sentry_sdk.integrations.grpc.constsr   Úsentry_sdk.tracesr   Úsentry_sdk.tracingr   Úsentry_sdk.tracing_utilsr	   Úsentry_sdk.utilsr
   Úcollections.abcr   r   r   r   r,   r   r   Úgrpc.aior   r   ÚImportErrorÚaior   © r    r   ú<module>rr      s‰  ðØ  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø /Ð /Ð /Ð /Ð /Ð /Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1àð %Ø3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ø$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ð2Ø€K€K€KØ9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ø4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ð4øØð 2ð 2ð 2Ø
ˆ,Ð0Ñ
1Ô
1Ð1ð2øøøðm
ð m
ð m
ð m
ð m
˜œÔ2ñ m
ô m
ð m
ð m
ð m
s   ÁA ÁA.