a
    !fxk                  	   @   s  d 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 ejjejjjejfejjejjjejfejjejjjejfejjejjjejfiZd	d
 Zdd Zdd Zdd ZG dd dejZ G dd de	j!ej"Z#dd Z$dd Z%dd Z&dd Z'dd Z(dd  Z)G d!d" d"ej*Z+G d#d$ d$ej,Z-G d%d& d&ej.Z/G d'd( d(ej0Z1G d)d* d*ej2Z3G d+d, d,ej4Z5d-d. Z6d/d0 Z7dS )1zCTranslates gRPC's client-side API into gRPC's client-side Beta API.    N)_common)	_metadata)
interfaces)cardinality)future)facec                 C   s(   | d u rdn| }|d u r|S ||S d S )N r   )metadatametadata_transformerZnon_none_metadatar   r   ^/var/www/html/python-backend/venv/lib/python3.9/site-packages/grpc/beta/_client_adaptations.py_effective_metadata&   s    r   c                 C   s   | d u rd S | j S N)credentials)Zgrpc_call_optionsr   r   r   _credentials.   s    r   c                 C   sJ   |   }t|}|d u r$tjjjn|d }t||  |  || 	 S )Nr   )
code6_STATUS_CODE_TO_ABORTION_KIND_AND_ABORTION_ERROR_CLASSgetr   AbortionKindLOCAL_FAILUREinitial_metadatatrailing_metadatadetails)rpc_error_callr   pairZ
error_kindr   r   r   	_abortion2   s    
r   c                 C   sB   |   }t|}|d u r tjn|d }||  |  ||  S )N   )r   r   r   r   ZAbortionErrorr   r   r   )r   r   r   Zexception_classr   r   r   _abortion_error;   s    
r   c                   @   s   e Zd Zdd ZdS )_InvocationProtocolContextc                 C   s   d S r   r   selfr   r   r    disable_next_request_compressionF   s    z;_InvocationProtocolContext.disable_next_request_compressionN)__name__
__module____qualname__r!   r   r   r   r   r   D   s   r   c                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zd,ddZd-ddZ	d.ddZ
dd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ ZdS )/_Rendezvousc                 C   s   || _ || _|| _d S r   )_future	_iterator_call)r    response_futureresponse_iteratorcallr   r   r   __init__L   s    z_Rendezvous.__init__c                 C   s
   | j  S r   )r(   cancelr   r   r   r   r-   Q   s    z_Rendezvous.cancelc                 C   s
   | j  S r   )r&   	cancelledr   r   r   r   r.   T   s    z_Rendezvous.cancelledc                 C   s
   | j  S r   )r&   runningr   r   r   r   r/   W   s    z_Rendezvous.runningc                 C   s
   | j  S r   )r&   doner   r   r   r   r0   Z   s    z_Rendezvous.doneNc              
   C   sx   z| j j|dW S  tjy> } zt|W Y d }~n>d }~0  tjyX   t Y n tjyr   t	 Y n0 d S N)timeout)
r&   resultgrpcRpcErrorr   FutureTimeoutErrorr   TimeoutErrorFutureCancelledErrorCancelledErrorr    r2   r   r   r   r   r3   ]   s    z_Rendezvous.resultc                 C   sf   z*| j j|d}|d u rW d S t|W S W n6 tjyF   t Y n tjy`   t Y n0 d S r1   )	r&   	exceptionr   r4   r6   r   r7   r8   r9   r:   r   r   r   r;   g   s    z_Rendezvous.exceptionc                 C   sL   z| j j|dW S  tjy,   t Y n tjyF   t Y n0 d S r1   )r&   	tracebackr4   r6   r   r7   r8   r9   )r    r2   r   r   r   r<   s   s    z_Rendezvous.tracebackc                    s   j  fdd d S )Nc                    s    S r   r   )Zignored_callbackfnr    r   r   <lambda>|       z/_Rendezvous.add_done_callback.<locals>.<lambda>)r&   add_done_callback)r    r>   r   r=   r   rA   {   s    z_Rendezvous.add_done_callbackc                 C   s   | S r   r   r   r   r   r   __iter__~   s    z_Rendezvous.__iter__c              
   C   s@   zt | jW S  tjy: } zt|W Y d }~n
d }~0 0 d S r   )nextr'   r4   r5   r   )r    r   r   r   r   _next   s    z_Rendezvous._nextc                 C   s   |   S r   rD   r   r   r   r   __next__   s    z_Rendezvous.__next__c                 C   s   |   S r   rE   r   r   r   r   rC      s    z_Rendezvous.nextc                 C   s
   | j  S r   )r(   	is_activer   r   r   r   rG      s    z_Rendezvous.is_activec                 C   s
   | j  S r   )r(   time_remainingr   r   r   r   rH      s    z_Rendezvous.time_remainingc                    s(    fdd}j |}|r"d S | S )Nc                      s"     tjjur tj d S r   )r   r4   
StatusCodeOKr   r(   r   abortion_callbackr    r   r   done_callback   s    z8_Rendezvous.add_abortion_callback.<locals>.done_callback)r(   Zadd_callback)r    rL   rM   
registeredr   rK   r   add_abortion_callback   s    z!_Rendezvous.add_abortion_callbackc                 C   s   t  S r   )r   r   r   r   r   protocol_context   s    z_Rendezvous.protocol_contextc                 C   s   t | j S r   )r   betar(   r   r   r   r   r   r      s    z_Rendezvous.initial_metadatac                 C   s   t | j S r   )r   rQ   r(   terminal_metadatar   r   r   r   rR      s    z_Rendezvous.terminal_metadatac                 C   s
   | j  S r   )r(   r   r   r   r   r   r      s    z_Rendezvous.codec                 C   s
   | j  S r   )r(   r   r   r   r   r   r      s    z_Rendezvous.details)N)N)N)r"   r#   r$   r,   r-   r.   r/   r0   r3   r;   r<   rA   rB   rD   rF   rC   rG   rH   rO   rP   r   rR   r   r   r   r   r   r   r%   J   s*   



	r%   c              
   C   s   zx| j t|||	|
d}t||}|rZ|j||t|t|d\}}|td d |fW S |||t|t|dW S W n. t	j
y } zt|W Y d }~n
d }~0 0 d S N)request_serializerresponse_deserializer)r2   r	   r   )unary_unaryr   fully_qualified_methodr   	with_callr   unbetar   r%   r4   r5   r   )channelgroupmethodr2   rX   protocol_optionsr	   r
   requestrT   rU   multi_callableeffective_metadataresponser+   r   r   r   r   _blocking_unary_unary   s,    


rb   c
                 C   sJ   | j t||||	d}
t||}|
j||t|t|d}t|d |S rS   )	rV   r   rW   r   r   r   rY   r   r%   )rZ   r[   r\   r2   r]   r	   r
   r^   rT   rU   r_   r`   r)   r   r   r   _future_unary_unary   s    

rc   c
                 C   sH   | j t||||	d}
t||}|
||t|t|d}td ||S rS   )unary_streamr   rW   r   r   rY   r   r%   )rZ   r[   r\   r2   r]   r	   r
   r^   rT   rU   r_   r`   r*   r   r   r   _unary_stream   s    

re   c              
   C   s   zx| j t|||	|
d}t||}|rZ|j||t|t|d\}}|td d |fW S |||t|t|dW S W n. t	j
y } zt|W Y d }~n
d }~0 0 d S rS   )stream_unaryr   rW   r   rX   r   rY   r   r%   r4   r5   r   )rZ   r[   r\   r2   rX   r]   r	   r
   request_iteratorrT   rU   r_   r`   ra   r+   r   r   r   r   _blocking_stream_unary   s,    


rh   c
                 C   sJ   | j t||||	d}
t||}|
j||t|t|d}t|d |S rS   )	rf   r   rW   r   r   r   rY   r   r%   )rZ   r[   r\   r2   r]   r	   r
   rg   rT   rU   r_   r`   r)   r   r   r   _future_stream_unary   s    

ri   c
                 C   sH   | j t||||	d}
t||}|
||t|t|d}td ||S rS   )stream_streamr   rW   r   r   rY   r   r%   )rZ   r[   r\   r2   r]   r	   r
   rg   rT   rU   r_   r`   r*   r   r   r   _stream_stream  s    

rk   c                   @   s2   e Zd Zdd ZdddZdddZdd	d
ZdS )_UnaryUnaryMultiCallablec                 C   s(   || _ || _|| _|| _|| _|| _d S r   _channel_group_method_metadata_transformer_request_serializer_response_deserializerr    rZ   r[   r\   r
   rT   rU   r   r   r   r,   !  s    z!_UnaryUnaryMultiCallable.__init__NFc                 C   s(   t | j| j| j||||| j|| j| jS r   )rb   rn   ro   rp   rq   rr   rs   )r    r^   r2   r	   rX   r]   r   r   r   __call__*  s    z!_UnaryUnaryMultiCallable.__call__c                 C   s&   t | j| j| j|||| j|| j| j
S r   )rc   rn   ro   rp   rq   rr   rs   r    r^   r2   r	   r]   r   r   r   r   6  s    z_UnaryUnaryMultiCallable.futurec                 C   s
   t  d S r   NotImplementedErrorr    r^   receiverrL   r2   r	   r]   r   r   r   event=  s    z_UnaryUnaryMultiCallable.event)NFN)NN)NNr"   r#   r$   r,   ru   r   r{   r   r   r   r   rl     s      

  rl   c                   @   s(   e Zd Zdd ZdddZd	ddZdS )
_UnaryStreamMultiCallablec                 C   s(   || _ || _|| _|| _|| _|| _d S r   rm   rt   r   r   r   r,   I  s    z"_UnaryStreamMultiCallable.__init__Nc                 C   s&   t | j| j| j|||| j|| j| j
S r   )re   rn   ro   rp   rq   rr   rs   rv   r   r   r   ru   R  s    z"_UnaryStreamMultiCallable.__call__c                 C   s
   t  d S r   rw   ry   r   r   r   r{   Y  s    z_UnaryStreamMultiCallable.event)NN)NNr"   r#   r$   r,   ru   r{   r   r   r   r   r}   G  s
   	
  r}   c                   @   s2   e Zd Zdd ZdddZdddZdd	d
ZdS )_StreamUnaryMultiCallablec                 C   s(   || _ || _|| _|| _|| _|| _d S r   rm   rt   r   r   r   r,   e  s    z"_StreamUnaryMultiCallable.__init__NFc                 C   s(   t | j| j| j||||| j|| j| jS r   )rh   rn   ro   rp   rq   rr   rs   )r    rg   r2   r	   rX   r]   r   r   r   ru   n  s    z"_StreamUnaryMultiCallable.__call__c                 C   s&   t | j| j| j|||| j|| j| j
S r   )ri   rn   ro   rp   rq   rr   rs   r    rg   r2   r	   r]   r   r   r   r   {  s    z _StreamUnaryMultiCallable.futurec                 C   s
   t  d S r   rw   r    rz   rL   r2   r	   r]   r   r   r   r{     s    z_StreamUnaryMultiCallable.event)NFN)NN)NNr|   r   r   r   r   r   c  s      
  
  r   c                   @   s(   e Zd Zdd ZdddZd	ddZdS )
_StreamStreamMultiCallablec                 C   s(   || _ || _|| _|| _|| _|| _d S r   rm   rt   r   r   r   r,     s    z#_StreamStreamMultiCallable.__init__Nc                 C   s&   t | j| j| j|||| j|| j| j
S r   )rk   rn   ro   rp   rq   rr   rs   r   r   r   r   ru     s    z#_StreamStreamMultiCallable.__call__c                 C   s
   t  d S r   rw   r   r   r   r   r{     s    z _StreamStreamMultiCallable.event)NN)NNr~   r   r   r   r   r     s     
  r   c                   @   s   e Zd Zdd Zd$ddZd%ddZd&dd	Zd'd
dZd(ddZd)ddZ	d*ddZ
d+ddZd,ddZd-ddZdd Zdd Zdd Zdd Zd d! Zd"d# ZdS )._GenericStubc                 C   s$   || _ || _|pi | _|pi | _d S r   )rn   rq   _request_serializers_response_deserializers)r    rZ   r
   request_serializersresponse_deserializersr   r   r   r,     s    
z_GenericStub.__init__Nc           
      C   s@   | j ||f}| j||f}	t| j||||||| j|||	S r   )r   r   r   rb   rn   rq   )
r    r[   r\   r^   r2   r	   rX   r]   rT   rU   r   r   r   blocking_unary_unary  s    z!_GenericStub.blocking_unary_unaryc           	      C   s>   | j ||f}| j||f}t| j|||||| j|||
S r   )r   r   r   rc   rn   rq   	r    r[   r\   r^   r2   r	   r]   rT   rU   r   r   r   future_unary_unary  s    z_GenericStub.future_unary_unaryc           	      C   s>   | j ||f}| j||f}t| j|||||| j|||
S r   )r   r   r   re   rn   rq   r   r   r   r   inline_unary_stream  s    z _GenericStub.inline_unary_streamc           
      C   s@   | j ||f}| j||f}	t| j||||||| j|||	S r   )r   r   r   rh   rn   rq   )
r    r[   r\   rg   r2   r	   rX   r]   rT   rU   r   r   r   blocking_stream_unary  s    z"_GenericStub.blocking_stream_unaryc           	      C   s>   | j ||f}| j||f}t| j|||||| j|||
S r   )r   r   r   ri   rn   rq   	r    r[   r\   rg   r2   r	   r]   rT   rU   r   r   r   future_stream_unary
  s    z _GenericStub.future_stream_unaryc           	      C   s>   | j ||f}| j||f}t| j|||||| j|||
S r   )r   r   r   rk   rn   rq   r   r   r   r   inline_stream_stream  s    z!_GenericStub.inline_stream_streamc	           	      C   s
   t  d S r   rw   	r    r[   r\   r^   rz   rL   r2   r	   r]   r   r   r   event_unary_unary3  s    	z_GenericStub.event_unary_unaryc	           	      C   s
   t  d S r   rw   r   r   r   r   event_unary_stream>  s    	z_GenericStub.event_unary_streamc                 C   s
   t  d S r   rw   r    r[   r\   rz   rL   r2   r	   r]   r   r   r   event_stream_unaryI  s    z_GenericStub.event_stream_unaryc                 C   s
   t  d S r   rw   r   r   r   r   event_stream_streamS  s    z _GenericStub.event_stream_streamc                 C   s6   | j ||f}| j||f}t| j||| j||S r   )r   r   r   rl   rn   rq   r    r[   r\   rT   rU   r   r   r   rV   ]  s    
z_GenericStub.unary_unaryc                 C   s6   | j ||f}| j||f}t| j||| j||S r   )r   r   r   r}   rn   rq   r   r   r   r   rd   k  s    
z_GenericStub.unary_streamc                 C   s6   | j ||f}| j||f}t| j||| j||S r   )r   r   r   r   rn   rq   r   r   r   r   rf   y  s    
z_GenericStub.stream_unaryc                 C   s6   | j ||f}| j||f}t| j||| j||S r   )r   r   r   r   rn   rq   r   r   r   r   rj     s    
z_GenericStub.stream_streamc                 C   s   | S r   r   r   r   r   r   	__enter__  s    z_GenericStub.__enter__c                 C   s   dS NFr   r    exc_typeexc_valexc_tbr   r   r   __exit__  s    z_GenericStub.__exit__)NNN)NN)NN)NNN)NN)NN)NN)NN)NN)NN)r"   r#   r$   r,   r   r   r   r   r   r   r   r   r   r   rV   rd   rf   rj   r   r   r   r   r   r   r     sN      
  
  
   
  
  
  
  
  
  

r   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
_DynamicStubc                 C   s   || _ || _|| _d S r   )_generic_stubro   _cardinalities)r    Zbacking_generic_stubr[   cardinalitiesr   r   r   r,     s    z_DynamicStub.__init__c                 C   s   | j |}|tjju r(| j| j|S |tjju rD| j	| j|S |tjj
u r`| j| j|S |tjju r|| j| j|S td| d S )Nz*_DynamicStub object has no attribute "%s"!)r   r   r   ZCardinalityZUNARY_UNARYr   rV   ro   ZUNARY_STREAMrd   ZSTREAM_UNARYrf   ZSTREAM_STREAMrj   AttributeError)r    attrZmethod_cardinalityr   r   r   __getattr__  s    z_DynamicStub.__getattr__c                 C   s   | S r   r   r   r   r   r   r     s    z_DynamicStub.__enter__c                 C   s   dS r   r   r   r   r   r   r     s    z_DynamicStub.__exit__N)r"   r#   r$   r,   r   r   r   r   r   r   r   r     s   r   c                 C   s   t | |||S r   )r   )rZ   hostr
   r   r   r   r   r   generic_stub  s    r   c                 C   s   t t| |||||S r   )r   r   )rZ   Zservicer   r   r
   r   r   r   r   r   dynamic_stub  s    r   )8__doc__r4   r   Z	grpc.betar   r   Zgrpc.framework.commonr   Zgrpc.framework.foundationr   Zgrpc.framework.interfaces.facer   rI   	CANCELLEDr   r   ZCancellationErrorUNKNOWNZREMOTE_FAILUREZRemoteErrorZDEADLINE_EXCEEDEDZEXPIREDZExpirationErrorZUNIMPLEMENTEDr   Z
LocalErrorr   r   r   r   r   ZGRPCInvocationContextr   FutureCallr%   rb   rc   re   rh   ri   rk   ZUnaryUnaryMultiCallablerl   ZUnaryStreamMultiCallabler}   ZStreamUnaryMultiCallabler   ZStreamStreamMultiCallabler   ZGenericStubr   ZDynamicStubr   r   r   r   r   r   r   <module>   sJ   		b(, o