
    lh                        d dl mZ d dlZd dlmZmZ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 dd
lmZ ddlmZ ddlmZ d dlmZmZmZmZ er	d dlmZmZ n G d d      Z G d d      Z e       Z ed      Z  eejB                        Z"dee ef   dee ef   fdZ#dee ef   dee ef   fdZ$dee ef   dee ef   fdZ%dee ef   dee ef   fdZ&dee ef   dee ef   fdZ' G d de
      Z(y)    )wrapsN)ChannelServerintercept_channel)r   )r   )Integration)parse_version   )ClientInterceptor)ServerInterceptor)!SentryUnaryUnaryClientInterceptor)"SentryUnaryStreamClientInterceptor)TYPE_CHECKINGAnyOptionalSequence)	ParamSpecCallablec                       e Zd Zd Zy)r   c                      d | _         d | _        y N)argskwargsself_s     w/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/sentry_sdk/integrations/grpc/__init__.py__init__zParamSpec.__init__   s    DIDK    N)__name__
__module____qualname__r    r   r   r   r      s    	r   r   c                       e Zd Zd Zy)	_Callablec                      y r   r"   r   s     r   __getitem__z_Callable.__getitem__%   s    r   N)r   r    r!   r&   r"   r   r   r$   r$   $   s    	r   r$   Pfuncreturnc                 T     t               dt        dt        dt        f fd       }|S )z4Wrapper for synchronous secure and insecure channel.r   r   r)   c                  v     | i |}t         j                  sdt         _        t        |t                     S |S )NT)r
   _is_interceptedr   )r   r   channelr(   s      r   patched_channelz+_wrap_channel_sync.<locals>.patched_channel3   s:    '' 0004-$W.?.ABBNr   )r   r   r   r(   r.   s   ` r   _wrap_channel_syncr0   0   s8     4[s c g   r   c                 b    t        |       dt        dt        j                  dt        fd       }|S )Nr-   interceptorsr)   c           	          t         j                  r*t        |D cg c]  }t        |t               s| c}      }n|}t	        | g| S c c}w r   )r
   r,   tuple
isinstancer   )r-   r2   interceptors      r   patched_intercept_channelz:_wrap_intercept_channel.<locals>.patched_intercept_channel@   sV     ,,  (4#%k3DE  L (L 8<88s   A	)r   r   grpcr   )r(   r7   s     r   _wrap_intercept_channelr9   ?   s>    
4[99)-)?)?9	9 9 %$r   c           
           t               dddt        j                  dt        t        t
        j                  j                        dt        j                  dt        f fd       }|S )z5Wrapper for asynchronous secure and insecure channel.Nr2   r   r2   r   r)   c                 T    t               t               g}g || xs g }  |d| i|S Nr2   ) AsyncUnaryUnaryClientInterceptor AsyncUnaryStreamClientIntercetor)r2   r   r   sentry_interceptorsr(   s       r   r.   z,_wrap_channel_async.<locals>.patched_channelV   sF     -.,.
 E,D0BDT????r   )
r   r'   r   r   r   r8   aior
   r   r   r/   s   ` r   _wrap_channel_asyncrB   S   sp     4[ HL
@vv
@x(B(BCD
@ ((
@ 
	
@ 
@ r   c           
           t               dddt        j                  dt        t        t
        j                        dt        j                  dt        f fd       }|S )zWrapper for synchronous server.Nr;   r   r2   r   r)   c                     | xs g D cg c]  }t        |t              s| } }t               }|g| xs g }  |d| i|S c c}w r=   )r5   r   )r2   r   r   r6   server_interceptorr(   s        r   patched_serverz)_wrap_sync_server.<locals>.patched_serveri   si      ,1r
k+<= 
 

 /0*Bl.@bBT????
s   A	r   r'   r   r   r   r8   r   r   r   )r(   rF   s   ` r   _wrap_sync_serverrH   f   sl     4[ DH@vv@x(>(>?@@ ((@ 
	@ @ r   c           
           t               dddt        j                  dt        t        t
        j                        dt        j                  dt        f fd       }|S )z Wrapper for asynchronous server.Nr;   r   r2   r   r)   c                     t               }|g| xs g } 	 t        t        dk  rt        |       }  |d| i|S # t        $ r Y w xY w)N)r	   *   r   r2   )AsyncServerInterceptorGRPC_VERSIONr4   	Exception)r2   r   r   rE   r(   s       r   patched_aio_serverz._wrap_async_server.<locals>.patched_aio_server~   sn     45
 b

	
 'L:,E$\2 T????  		s   : 	AArG   )r(   rO   s   ` r   _wrap_async_serverrP   {   sl     4[ DH@vv@x(>(>?@@ ((@ 
	@ @. r   c                   "    e Zd ZdZedd       Zy)GRPCIntegrationr8   Nc                     dd l } t        | j                        | _        t        | j                        | _        t	        | j
                        | _        t        | j                  j                        | j                  _        t        | j                  j                        | j                  _        t        | j                        | _	        t        | j                  j                        | j                  _	        y )Nr   )r8   r0   insecure_channelsecure_channelr9   r   rB   rA   rH   serverrP   )r8   s    r   
setup_oncezGRPCIntegration.setup_once   s     243H3H I01D1DE!89O9O!P$78Q8Q$R!"5dhh6M6M"N'4,TXX__=r   )r)   N)r   r    r!   
identifierstaticmethodrW   r"   r   r   rR   rR      s    J> >r   rR   ))	functoolsr   r8   r   r   r   grpc.aioAsyncChannelAsyncServersentry_sdk.integrationsr   sentry_sdk.utilsr   clientr
   rV   r   
aio.serverrL   
aio.clientr   r>   r   r?   typingr   r   r   r   r   r   r$   r'   __version__rM   r0   r9   rB   rH   rP   rR   r"   r   r   <module>re      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   