
    gh                        S SK Jr  S SKrS SKJrJrJr  S SKJr  S SKJr  S SK	J
r
  S SKJr  SS	KJr  SS
KJr  SS
KJr  SSKJr  SSKJr  S SKJrJrJrJr  \(       a	  S SKJrJr  O " S S5      r " S S5      r\" 5       r\" S5      r \" \RB                  5      r"S\\ \4   S\\ \4   4S jr#S\\ \4   S\\ \4   4S jr$S\\ \4   S\\ \4   4S jr%S\\ \4   S\\ \4   4S jr&S\\ \4   S\\ \4   4S jr' " S S\
5      r(g)    )wrapsN)ChannelServerintercept_channel)r   )r   )Integration)parse_version   )ClientInterceptor)ServerInterceptor)!SentryUnaryUnaryClientInterceptor)"SentryUnaryStreamClientInterceptor)TYPE_CHECKINGAnyOptionalSequence)	ParamSpecCallablec                       \ rS rSrS rSrg)r      c                      S U l         S U l        g Nargskwargsself_s     h/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/sentry_sdk/integrations/grpc/__init__.py__init__ParamSpec.__init__   s    DIDK    r   N)__name__
__module____qualname____firstlineno__r   __static_attributes__ r!   r   r   r      s    	r!   r   c                       \ rS rSrS rSrg)	_Callable$   c                     g r   r'   r   s     r   __getitem___Callable.__getitem__%   s    r!   r'   N)r"   r#   r$   r%   r,   r&   r'   r!   r   r)   r)   $   s    	r!   r)   Pfuncreturnc                 X   ^  [        T 5      S[        S[        S[        4U 4S jj5       nU$ )z4Wrapper for synchronous secure and insecure channel.r   r   r0   c                     > T" U 0 UD6n[         R                  (       d  S[         l        [        U[        5       5      $ U$ )NT)r
   _is_interceptedr   )r   r   channelr/   s      r   patched_channel+_wrap_channel_sync.<locals>.patched_channel3   s:    '' 0004-$W.?.ABBNr!   )r   r   r   r/   r5   s   ` r   _wrap_channel_syncr8   0   s8     4[s c g   r!   c                 d    [        U 5      S[        S[        R                  S[        4S j5       nU$ )Nr4   interceptorsr0   c           	          [         R                  (       a4  [        U Vs/ s H  n[        U[         5      (       a  M  UPM     sn5      nOUn[	        U /UQ76 $ s  snf r   )r
   r3   tuple
isinstancer   )r4   r:   interceptors      r   patched_intercept_channel:_wrap_intercept_channel.<locals>.patched_intercept_channel@   s[     ,,  (4'3%k3DE  '3L (L 8<88s
   AA)r   r   grpcr   )r/   r?   s     r   _wrap_intercept_channelrB   ?   s>    
4[99)-)?)?9	9 9 %$r!   c           
         ^  [        T 5      SS.S[        R                  S[        [        [
        R                  R                        S[        R                  S[        4U 4S jjj5       nU$ )z5Wrapper for asynchronous secure and insecure channel.Nr:   r   r:   r   r0   c                 ^   > [        5       [        5       /n/ UQU =(       d    / Qn T" USU 0UD6$ Nr:   ) AsyncUnaryUnaryClientInterceptor AsyncUnaryStreamClientIntercetor)r:   r   r   sentry_interceptorsr/   s       r   r5   ,_wrap_channel_async.<locals>.patched_channelV   sF     -.,.
 E,D0BDT????r!   )
r   r.   r   r   r   rA   aior
   r   r   r7   s   ` r   _wrap_channel_asyncrL   S   sp     4[ HL
@vv
@x(B(BCD
@ ((
@ 
	
@ 
@ r!   c           
         ^  [        T 5      SS.S[        R                  S[        [        [
        R                        S[        R                  S[        4U 4S jjj5       nU$ )zWrapper for synchronous server.NrD   r   r:   r   r0   c                    > U =(       d    /  Vs/ s H  n[        U[        5      (       a  M  UPM     n n[        5       nU/U =(       d    / Qn T" USU 0UD6$ s  snf rF   )r=   r   )r:   r   r   r>   server_interceptorr/   s        r   patched_server)_wrap_sync_server.<locals>.patched_serveri   so      ,1r1
1k+<= 1 	 

 /0*Bl.@bBT????
s
   AA	r   r.   r   r   r   rA   r   r   r   )r/   rP   s   ` r   _wrap_sync_serverrS   f   sl     4[ DH@vv@x(>(>?@@ ((@ 
	@ @ r!   c           
         ^  [        T 5      SS.S[        R                  S[        [        [
        R                        S[        R                  S[        4U 4S jjj5       nU$ )z Wrapper for asynchronous server.NrD   r   r:   r   r0   c                    > [        5       nU/U =(       d    / Qn  [        b  [        S:  a  [        U 5      n T" USU 0UD6$ ! [         a     Nf = f)N)r	   *   r   r:   )AsyncServerInterceptorGRPC_VERSIONr<   	Exception)r:   r   r   rO   r/   s       r   patched_aio_server._wrap_async_server.<locals>.patched_aio_server~   sn     45
 b

	
 'L:,E$\2 T????  		s   A 
AArR   )r/   rZ   s   ` r   _wrap_async_serverr\   {   sl     4[ DH@vv@x(>(>?@@ ((@ 
	@ @. r!   c                   ,    \ rS rSrSr\SS j5       rSrg)GRPCIntegration   rA   Nc                     SS K n [        U R                  5      U l        [        U R                  5      U l        [	        U R
                  5      U l        [        U R                  R                  5      U R                  l        [        U R                  R                  5      U R                  l        [        U R                  5      U l	        [        U R                  R                  5      U R                  l	        g )Nr   )rA   r8   insecure_channelsecure_channelrB   r   rL   rK   rS   serverr\   )rA   s    r   
setup_onceGRPCIntegration.setup_once   s     243H3H I01D1DE!89O9O!P$78Q8Q$R!"5dhh6M6M"N'4,TXX__=r!   r'   )r0   N)r"   r#   r$   r%   
identifierstaticmethodrd   r&   r'   r!   r   r^   r^      s    J> >r!   r^   ))	functoolsr   rA   r   r   r   grpc.aioAsyncChannelAsyncServersentry_sdk.integrationsr   sentry_sdk.utilsr   clientr
   rc   r   
aio.serverrW   
aio.clientr   rG   r   rH   typingr   r   r   r   r   r   r)   r.   __version__rX   r8   rB   rL   rS   r\   r^   r'   r!   r   <module>rs      s>     3 3 , * / * % % C : 9
 **  
 {HcNT--.Xaj1 hq'z6J %(1g:"6 %8AwJ;O %(hq,7 HQ_<U &HQY/ HQY4G *Xan5 (1k>:R <>k >r!   