Ë
    çÞËj¼  ã                   ó  — 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 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  G d„ dej4                  j6                  «      Zy# e$ r	  ed«      ‚w xY w)é    N)ÚOP)ÚDidNotEnable)ÚSPAN_ORIGIN)ÚTransactionÚTRANSACTION_SOURCE_CUSTOM)Úevent_from_exception)ÚTYPE_CHECKING)Ú	AwaitableÚCallable)ÚAnyÚOptional)ÚHandlerCallDetailsÚRpcMethodHandler)Ú
AbortErrorÚServicerContextzgrpcio is not installedc                   ó,   ‡ — e Zd Zdˆ fd„	Zd„ Zd„ Zˆ xZS )ÚServerInterceptorc                 óL   •— |xs | j                   | _        t        ‰| �  «        y ©N)Ú
_find_nameÚ_find_method_nameÚsuperÚ__init__)ÚselfÚ	find_nameÚ	__class__s     €úd/var/www/photos/backend/venv/lib/python3.12/site-packages/sentry_sdk/integrations/grpc/aio/server.pyr   zServerInterceptor.__init__   s   ø€ à!*Ò!=¨d¯o©oˆÔä‰ÑÕó    c              ƒ   óô  ‡ ‡K  — |‰ _          ||«      ƒ d {  –—† Š‰€y ‰j                  s#‰j                  st        j                  }ˆˆ fd„}n‰‰j                  s"‰j                  rt        j
                  }ˆfd„}n[‰j                  r"‰j                  st        j                  }ˆfd„}n-‰j                  r!‰j                  rt        j                  }ˆfd„} ‰j                  ‰j                  ¬«      S 7 ŒÞ­w)Nc              “   ó  •K  — ‰j                  |«      }|s ‰| |«      ƒ d {  –—† S t        j                  t        |j	                  «       «      t
        j                  |t        t        ¬«      }t        j                  |¬«      5  	 ‰j                  | |«      ƒ d {  –—† cd d d «       S 7 Œ†7 Œ# t        $ r ‚ t        $ r0}t        |dddœ¬«      \  }}t        j                  ||¬«       ‚ d }~ww xY w# 1 sw Y   y xY w­w)N)ÚopÚnameÚsourceÚorigin)ÚtransactionÚgrpcF)ÚtypeÚhandled)Ú	mechanism)Úhint)r   r   Úcontinue_from_headersÚdictÚinvocation_metadatar   ÚGRPC_SERVERr   r   Ú
sentry_sdkÚstart_transactionÚunary_unaryr   Ú	Exceptionr   Úcapture_event)	ÚrequestÚcontextr"   r%   ÚexcÚeventr*   Úhandlerr   s	          €€r   Úwrappedz4ServerInterceptor.intercept_service.<locals>.wrapped(   só   øè ø€ à×-Ñ-¨gÓ6�ÙÙ!(¨°'Ó!:×:Ð:ô *×?Ñ?Ü˜×4Ñ4Ó6Ó7Ü—~‘~ØÜ4Ü&ô�ô  ×1Ñ1¸kÔJñ ð
Ø%,×%8Ñ%8¸À'Ó%J×J÷ñ ð ;øð  KùÜ%ò ØÜ$ò Ü&:ØØ/5À%Ñ&Hô'™˜˜tô #×0Ñ0°¸TÕBØûðú÷ð üsX   ƒ C?£B*¤A!C?ÂC3ÂB.ÂB,ÂB.Â C?Â,B.Â.C0Ã +C+Ã+C0Ã0C3Ã3C<Ã8C?c                óV   •K  — ‰j                  | |«      2 3 d {  –—† }|­–— Œ7 Œ
6 y ­wr   )Úunary_stream©r4   r5   Úrr8   s      €r   r9   z4ServerInterceptor.intercept_service.<locals>.wrappedG   s1   øè ø€ à&×3Ñ3°G¸WÓE÷ ð ˜!Ø”GðøÑEùó   ƒ)–'š%›'ž)¥'§)c              “   óH   •K  — ‰j                  | |«      }|ƒ d {  –—† S 7 Œ­wr   )Ústream_unary)r4   r5   Úresponser8   s      €r   r9   z4ServerInterceptor.intercept_service.<locals>.wrappedO   s#   øè ø€ à"×/Ñ/°¸ÓA�Ø%—~Ð%�~ús   ƒ"› œ"c                óV   •K  — ‰j                  | |«      2 3 d {  –—† }|­–— Œ7 Œ
6 y ­wr   )Ústream_streamr<   s      €r   r9   z4ServerInterceptor.intercept_service.<locals>.wrappedW   s1   øè ø€ à&×4Ñ4°W¸gÓF÷ ð ˜!Ø”GðøÑFùr>   )Úrequest_deserializerÚresponse_serializer)
Ú_handler_call_detailsÚrequest_streamingÚresponse_streamingr&   Úunary_unary_rpc_method_handlerÚunary_stream_rpc_method_handlerÚstream_unary_rpc_method_handlerÚ stream_stream_rpc_method_handlerrD   rE   )r   ÚcontinuationÚhandler_call_detailsÚhandler_factoryr9   r8   s   `    @r   Úintercept_servicez#ServerInterceptor.intercept_service   sÙ   ùè ø€ à%9ˆÔ"Ù$Ð%9Ó:×:ˆØˆ?Øà×(Ò(°×1KÒ1KÜ"×AÑAˆOöð8 ×*Ò*¨w×/IÒ/IÜ"×BÑBˆOõð
 ×&Ò&¨w×/IÒ/IÜ"×BÑBˆOõ&ð
 ×&Ò&¨7×+EÒ+EÜ"×CÑCˆOôñ
 ØØ!(×!=Ñ!=Ø '× ;Ñ ;ô
ð 	
ðw ;ús   „C8—C6˜CC8c                 ó.   — | j                   j                  S r   )rF   Úmethod)r   r5   s     r   r   zServerInterceptor._find_nameb   s   € à×)Ñ)×0Ñ0Ð0r   r   )Ú__name__Ú
__module__Ú__qualname__r   rP   r   Ú__classcell__)r   s   @r   r   r      s   ø„ õòB
öH1r   r   )r/   Úsentry_sdk.constsr   Úsentry_sdk.integrationsr   Ú#sentry_sdk.integrations.grpc.constsr   Úsentry_sdk.tracingr   r   Úsentry_sdk.utilsr   Útypingr	   Úcollections.abcr
   r   r   r   r&   r   r   Úgrpc.aior   r   ÚImportErrorÚaior   © r   r   ú<module>rb      sf   ðÛ Ý  Ý 0Ý ;ß EÝ 1å  áß3ß$ð2Ûß9ß4ô
M1˜Ÿ™×2Ñ2õ M1øð	 ò 2Ù
Ð0Ó
1Ð1ð2ús   ¾A2 Á2B 