o
    |j6hi                  	   @   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 )N r   )metadatametadata_transformernon_none_metadatar   r   l/var/www/html/chefvision.cloud.itp360.com/venv/lib/python3.10/site-packages/grpc/beta/_client_adaptations.py_effective_metadata.   s   r   c                 C   s   | d u rd S | j S N)credentials)grpc_call_optionsr   r   r   _credentials6   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   pair
error_kindr   r   r   	_abortion:   s   
r   c                 C   sB   |   }t|}|d u rtjn|d }||  |  ||  S )N   )r   r   r   r   AbortionErrorr   r   r   )r   r   r   exception_classr   r   r   _abortion_errorG   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_compressionT      z;_InvocationProtocolContext.disable_next_request_compressionN)__name__
__module____qualname__r&   r   r   r   r   r#   S   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      || _ || _|| _d S r   )_future	_iterator_call)r%   response_futureresponse_iteratorcallr   r   r   __init__Y      
z_Rendezvous.__init__c                 C   
   | j  S r   )r/   cancelr$   r   r   r   r6   ^      
z_Rendezvous.cancelc                 C   r5   r   )r-   	cancelledr$   r   r   r   r8   a   r7   z_Rendezvous.cancelledc                 C   r5   r   )r-   runningr$   r   r   r   r9   d   r7   z_Rendezvous.runningc                 C   r5   r   )r-   doner$   r   r   r   r:   g   r7   z_Rendezvous.doneNc              
   C   s`   z| j j|dW S  tjy } zt|d }~w tjy$   t  tjy/   t	 w N)timeout)
r-   resultgrpcRpcErrorr"   FutureTimeoutErrorr   TimeoutErrorFutureCancelledErrorCancelledErrorr%   r<   r   r   r   r   r=   j   s   z_Rendezvous.resultc                 C   sV   z| j j|d}|d u rW d S t|W S  tjy   t  tjy*   t w r;   )	r-   	exceptionr"   r>   r@   r   rA   rB   rC   rD   r   r   r   rE   t   s   
z_Rendezvous.exceptionc                 C   s@   z| j j|dW S  tjy   t  tjy   t w r;   )r-   	tracebackr>   r@   r   rA   rB   rC   )r%   r<   r   r   r   rF      s   z_Rendezvous.tracebackc                    s   j  fdd d S )Nc                    s    S r   r   )ignored_callbackfnr%   r   r   <lambda>   s    z/_Rendezvous.add_done_callback.<locals>.<lambda>)r-   add_done_callback)r%   rI   r   rH   r   rK      s   z_Rendezvous.add_done_callbackc                 C      | S r   r   r$   r   r   r   __iter__   r'   z_Rendezvous.__iter__c              
   C   s0   zt | jW S  tjy } zt|d }~ww r   )nextr.   r>   r?   r"   )r%   r   r   r   r   _next   s   z_Rendezvous._nextc                 C      |   S r   rO   r$   r   r   r   __next__      z_Rendezvous.__next__c                 C   rP   r   rQ   r$   r   r   r   rN      rS   z_Rendezvous.nextc                 C   r5   r   )r/   	is_activer$   r   r   r   rT      r7   z_Rendezvous.is_activec                 C   r5   r   )r/   time_remainingr$   r   r   r   rU      r7   z_Rendezvous.time_remainingc                    s(    fdd}j |}|rd S | S )Nc                      s&     tjjur tj d S d S r   )r   r>   
StatusCodeOKr   r/   r   abortion_callbackr%   r   r   done_callback   s   z8_Rendezvous.add_abortion_callback.<locals>.done_callback)r/   add_callback)r%   rY   rZ   
registeredr   rX   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      t | j S r   )r   betar/   r   r$   r   r   r   r         z_Rendezvous.initial_metadatac                 C   r_   r   )r   r`   r/   terminal_metadatar$   r   r   r   rb      ra   z_Rendezvous.terminal_metadatac                 C   r5   r   )r/   r   r$   r   r   r   r      r7   z_Rendezvous.codec                 C   r5   r   )r/   r   r$   r   r   r   r      r7   z_Rendezvous.detailsr   )r(   r)   r*   r3   r6   r8   r9   r:   r=   rE   rF   rK   rM   rO   rR   rN   rT   rU   r]   r^   r   rb   r   r   r   r   r   r   r+   X   s,    



r+   c              
   C      z:| j t|||	|
d}t||}|r-|j||t|t|d\}}|td d |fW S |||t|t|dW S  t	j
yK } zt|d }~ww N)request_serializerresponse_deserializer)r<   r	   r   )unary_unaryr   fully_qualified_methodr   	with_callr   unbetar   r+   r>   r?   r"   )channelgroupmethodr<   ri   protocol_optionsr	   r
   requestre   rf   multi_callableeffective_metadataresponser2   r   r   r   r   _blocking_unary_unary   2   


rs   c
                 C   J   | j t||||	d}
t||}|
j||t|t|d}t|d |S rd   )	rg   r   rh   r   r   r   rj   r   r+   )rk   rl   rm   r<   rn   r	   r
   ro   re   rf   rp   rq   r0   r   r   r   _future_unary_unary      

rv   c
                 C   H   | j t||||	d}
t||}|
||t|t|d}td ||S rd   )unary_streamr   rh   r   r   rj   r   r+   )rk   rl   rm   r<   rn   r	   r
   ro   re   rf   rp   rq   r1   r   r   r   _unary_stream      

rz   c              
   C   rc   rd   )stream_unaryr   rh   r   ri   r   rj   r   r+   r>   r?   r"   )rk   rl   rm   r<   ri   rn   r	   r
   request_iteratorre   rf   rp   rq   rr   r2   r   r   r   r   _blocking_stream_unary  rt   r~   c
                 C   ru   rd   )	r|   r   rh   r   r   r   rj   r   r+   )rk   rl   rm   r<   rn   r	   r
   r}   re   rf   rp   rq   r0   r   r   r   _future_stream_unary<  rw   r   c
                 C   rx   rd   )stream_streamr   rh   r   r   rj   r   r+   )rk   rl   rm   r<   rn   r	   r
   r}   re   rf   rp   rq   r1   r   r   r   _stream_streamW  r{   r   c                   @   s<   e Zd Zdd Z			dddZdddZ		dd	d
ZdS )_UnaryUnaryMultiCallablec                 C   (   || _ || _|| _|| _|| _|| _d S r   _channel_group_method_metadata_transformer_request_serializer_response_deserializerr%   rk   rl   rm   r
   re   rf   r   r   r   r3   s     	
z!_UnaryUnaryMultiCallable.__init__NFc                 C   (   t | j| j| j||||| j|| j| jS r   )rs   r   r   r   r   r   r   )r%   ro   r<   r	   ri   rn   r   r   r   __call__     z!_UnaryUnaryMultiCallable.__call__c                 C   &   t | j| j| j|||| j|| j| j
S r   )rv   r   r   r   r   r   r   r%   ro   r<   r	   rn   r   r   r   r        z_UnaryUnaryMultiCallable.futurec                 C      t  r   NotImplementedErrorr%   ro   receiverrY   r<   r	   rn   r   r   r   event     	z_UnaryUnaryMultiCallable.eventNFNNNr(   r)   r*   r3   r   r   r   r   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S )	_UnaryStreamMultiCallablec                 C   r   r   r   r   r   r   r   r3     r   z"_UnaryStreamMultiCallable.__init__Nc                 C   r   r   )rz   r   r   r   r   r   r   r   r   r   r   r     r   z"_UnaryStreamMultiCallable.__call__c                 C   r   r   r   r   r   r   r   r     r   z_UnaryStreamMultiCallable.eventr   r(   r)   r*   r3   r   r   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S )_StreamUnaryMultiCallablec                 C   r   r   r   r   r   r   r   r3     r   z"_StreamUnaryMultiCallable.__init__NFc                 C   r   r   )r~   r   r   r   r   r   r   )r%   r}   r<   r	   ri   rn   r   r   r   r     r   z"_StreamUnaryMultiCallable.__call__c                 C   r   r   )r   r   r   r   r   r   r   r%   r}   r<   r	   rn   r   r   r   r        z _StreamUnaryMultiCallable.futurec                 C   r   r   r   r%   r   rY   r<   r	   rn   r   r   r   r        z_StreamUnaryMultiCallable.eventr   r   r   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S )	_StreamStreamMultiCallablec                 C   r   r   r   r   r   r   r   r3   !  r   z#_StreamStreamMultiCallable.__init__Nc                 C   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   1  r   z#_StreamStreamMultiCallable.__call__c                 C   r   r   r   r   r   r   r   r   A  r   z _StreamStreamMultiCallable.eventr   r   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   )r   r   _request_serializers_response_deserializers)r%   rk   r
   request_serializersresponse_deserializersr   r   r   r3   M  s   
z_GenericStub.__init__Nc           
      C   @   | j ||f}| j||f}	t| j||||||| j|||	S r   )r   r   r   rs   r   r   )
r%   rl   rm   ro   r<   r	   ri   rn   re   rf   r   r   r   blocking_unary_unaryY  .   
z!_GenericStub.blocking_unary_unaryc           	      C   >   | j ||f}| j||f}t| j|||||| j|||
S r   )r   r   r   rv   r   r   	r%   rl   rm   ro   r<   r	   rn   re   rf   r   r   r   future_unary_unary}  ,   	z_GenericStub.future_unary_unaryc           	      C   r   r   )r   r   r   rz   r   r   r   r   r   r   inline_unary_stream  r   z _GenericStub.inline_unary_streamc           
      C   r   r   )r   r   r   r~   r   r   )
r%   rl   rm   r}   r<   r	   ri   rn   re   rf   r   r   r   blocking_stream_unary  r   z"_GenericStub.blocking_stream_unaryc           	      C   r   r   )r   r   r   r   r   r   	r%   rl   rm   r}   r<   r	   rn   re   rf   r   r   r   future_stream_unary  r   z _GenericStub.future_stream_unaryc           	      C   r   r   )r   r   r   r   r   r   r   r   r   r   inline_stream_stream  r   z!_GenericStub.inline_stream_streamc	           	      C   r   r   r   	r%   rl   rm   ro   r   rY   r<   r	   rn   r   r   r   event_unary_unary)     z_GenericStub.event_unary_unaryc	           	      C   r   r   r   r   r   r   r   event_unary_stream6  r   z_GenericStub.event_unary_streamc                 C   r   r   r   r%   rl   rm   r   rY   r<   r	   rn   r   r   r   event_stream_unaryC     
z_GenericStub.event_stream_unaryc                 C   r   r   r   r   r   r   r   event_stream_streamO  r   z _GenericStub.event_stream_streamc                 C   6   | j ||f}| j||f}t| j||| j||S r   )r   r   r   r   r   r   r%   rl   rm   re   rf   r   r   r   rg   [  $   z_GenericStub.unary_unaryc                 C   r   r   )r   r   r   r   r   r   r   r   r   r   ry   q  r   z_GenericStub.unary_streamc                 C   r   r   )r   r   r   r   r   r   r   r   r   r   r|     r   z_GenericStub.stream_unaryc                 C   r   r   )r   r   r   r   r   r   r   r   r   r   r     r   z_GenericStub.stream_streamc                 C   rL   r   r   r$   r   r   r   	__enter__  r'   z_GenericStub.__enter__c                 C      dS NFr   r%   exc_typeexc_valexc_tbr   r   r   __exit__  r'   z_GenericStub.__exit__)NNNr   )r(   r)   r*   r3   r   r   r   r   r   r   r   r   r   r   rg   ry   r|   r   r   r   r   r   r   r   r   L  sP    
*
(
(
*
(
*



r   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
_DynamicStubc                 C   r,   r   )_generic_stubr   _cardinalities)r%   backing_generic_stubrl   cardinalitiesr   r   r   r3     r4   z_DynamicStub.__init__c                 C   s   | j |}|tjju r| j| j|S |tjju r"| j	| j|S |tjj
u r0| j| j|S |tjju r>| j| j|S td| )Nz*_DynamicStub object has no attribute "%s"!)r   r   r   CardinalityUNARY_UNARYr   rg   r   UNARY_STREAMry   STREAM_UNARYr|   STREAM_STREAMr   AttributeError)r%   attrmethod_cardinalityr   r   r   __getattr__  s   z_DynamicStub.__getattr__c                 C   rL   r   r   r$   r   r   r   r     r'   z_DynamicStub.__enter__c                 C   r   r   r   r   r   r   r   r     r'   z_DynamicStub.__exit__N)r(   r)   r*   r3   r   r   r   r   r   r   r   r     s
    r   c                 C   s   t | |||S r   )r   )rk   hostr
   r   r   r   r   r   generic_stub  s   r   c                 C   s   t t| |||||S r   )r   r   )rk   servicer   r   r
   r   r   r   r   r   dynamic_stub  s   	r   )8__doc__r>   r   	grpc.betar   r   grpc.framework.commonr   grpc.framework.foundationr   grpc.framework.interfaces.facer   rV   	CANCELLEDr   r   CancellationErrorUNKNOWNREMOTE_FAILURERemoteErrorDEADLINE_EXCEEDEDEXPIREDExpirationErrorUNIMPLEMENTEDr   
LocalErrorr   r   r   r   r"   GRPCInvocationContextr#   FutureCallr+   rs   rv   rz   r~   r   r   UnaryUnaryMultiCallabler   UnaryStreamMultiCallabler   StreamUnaryMultiCallabler   StreamStreamMultiCallabler   GenericStubr   DynamicStubr   r   r   r   r   r   r   <module>   s^   `''A+B,  p