o
    ZhSV                     @   s  d Z ddlZddlZddlmZmZmZmZm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 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 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) ddl#m*Z* dd l+m,Z, d!-ej.Z/ej0d d"k rd#eej1 fd$d%Z2n
d#eej1 fd&d%Z2d'e$d(ee	j3 fd)d*Z4G d+d, d,Z5G d-d. d.e5ej6Z6G d/d0 d0e5ej7Z7G d1d2 d2e5ej8Z8G d3d4 d4e5ej9Z9G d5d6 d6ej:Z:			d?d7e;d8ee$ d(ee	j3 d9eee  fd:d;Z<			d?d7e;d<e	j=d8ee$ d(ee	j3 d9eee  f
d=d>Z>dS )@z6Invocation-side implementation of gRPC Asyncio Python.    N)AnyIterableListOptionalSequence)_common)_compression)_grpcio_metadata)cygrpc   )
_base_call)_base_channel)StreamStreamCall)StreamUnaryCall)UnaryStreamCall)UnaryUnaryCall)ClientInterceptor)InterceptedStreamStreamCall)InterceptedStreamUnaryCall)InterceptedUnaryStreamCall)InterceptedUnaryUnaryCall)StreamStreamClientInterceptor)StreamUnaryClientInterceptor)UnaryStreamClientInterceptor)UnaryUnaryClientInterceptor)Metadata)ChannelArgumentType)DeserializingFunction)MetadataType)RequestIterableType)RequestType)ResponseType)SerializingFunction)_timeout_to_deadlinezgrpc-python-asyncio/{}   returnc                   C   s
   t j S N)asyncioTask	all_tasks r*   r*   H/var/www/html/lang_env/lib/python3.10/site-packages/grpc/aio/_channel.py
_all_tasks7   s   
r,   c                   C   s   t  S r&   )r'   r)   r*   r*   r*   r+   r,   <   s   base_optionscompressionc                 C   s(   t |}tjjtff}t| | | S r&   )r   Zcreate_channel_optionr
   ZChannelArgKeyZprimary_user_agent_string_USER_AGENTtuple)r-   r.   Zcompression_channel_argumentZuser_agent_channel_argumentr*   r*   r+   _augment_channel_arguments@   s   r1   c                   @   s   e Zd ZU dZejed< ejed< e	ed< e
ed< eed< eee  ed< ee ed< ejed< d	ejd
e	de
dedeee  dee dejddfddZe		ddee deej defddZdS )_BaseMultiCallablezrBase class of all multi callable objects.

    Handles the initialization logic and stores common attributes.
    _loop_channel_method_request_serializer_response_deserializer_interceptors_referenceschannelmethodrequest_serializerresponse_deserializerinterceptors
referencesloopr%   Nc                 C   s.   || _ || _|| _|| _|| _|| _|| _d S r&   )r3   r4   r5   r6   r7   r8   r9   )selfr:   r;   r<   r=   r>   r?   r@   r*   r*   r+   __init__c   s   

z_BaseMultiCallable.__init__metadatar.   c                 C   s@   | pt  } t| t st| trt | } |rt t| | } | S )zBased on the provided values for <metadata> or <compression> initialise the final
        metadata, as it should be used for the current call.
        )r   
isinstancer0   Z
from_tupler   Zaugment_metadata)rC   r.   r*   r*   r+   _init_metadatau   s   


z!_BaseMultiCallable._init_metadata)NN)__name__
__module____qualname____doc__r'   AbstractEventLoop__annotations__r
   
AioChannelbytesr"   r   r   r   r   r   r   rB   staticmethodr   grpcCompressionr   rE   r*   r*   r*   r+   r2   S   sJ   
 



	
r2   c                   @   b   e Zd Zdddddddedee dee deej dee	 deej
 d	ejeef fd
dZdS )UnaryUnaryMultiCallableNtimeoutrC   credentialswait_for_readyr.   requestrT   rC   rU   rV   r.   r%   c                C   j   |  ||}| jst|t||||| j| j| j| j| j
}|S t	| j|||||| j| j| j| j| j}|S r&   )
rE   r8   r   r#   r4   r5   r6   r7   r3   r   rA   rW   rT   rC   rU   rV   r.   callr*   r*   r+   __call__   s:   
z UnaryUnaryMultiCallable.__call__)rF   rG   rH   r    r   floatr   rO   CallCredentialsboolrP   r   r   r!   r[   r*   r*   r*   r+   rR      *    	rR   c                   @   rQ   )UnaryStreamMultiCallableNrS   rW   rT   rC   rU   rV   r.   r%   c                C   rX   r&   )
rE   r8   r   r#   r4   r5   r6   r7   r3   r   rY   r*   r*   r+   r[      s:   
z!UnaryStreamMultiCallable.__call__)rF   rG   rH   r    r   r\   r   rO   r]   r^   rP   r   r   r!   r[   r*   r*   r*   r+   r`      r_   r`   c                   @   ^   e Zd Z						ddee dee dee deej dee	 deej
 dejfd	d
ZdS )StreamUnaryMultiCallableNrequest_iteratorrT   rC   rU   rV   r.   r%   c                 C   rX   r&   )
rE   r8   r   r#   r4   r5   r6   r7   r3   r   rA   rc   rT   rC   rU   rV   r.   rZ   r*   r*   r+   r[      :   	z!StreamUnaryMultiCallable.__call__NNNNNN)rF   rG   rH   r   r   r\   r   rO   r]   r^   rP   r   r   r[   r*   r*   r*   r+   rb      ,    rb   c                   @   ra   )StreamStreamMultiCallableNrc   rT   rC   rU   rV   r.   r%   c                 C   rX   r&   )
rE   r8   r   r#   r4   r5   r6   r7   r3   r   rd   r*   r*   r+   r[     re   z"StreamStreamMultiCallable.__call__rf   )rF   rG   rH   r   r   r\   r   rO   r]   r^   rP   r   r   r[   r*   r*   r*   r+   rh     rg   rh   c                   @   s  e Zd ZU ejed< ejed< ee	 ed< ee
 ed< ee ed< ee ed< deded	eej d
eej deee  f
ddZdd Zdd Zdd Zd2dee fddZdd Z	d3dedejfddZdejddfd d!Zd4d"d#Z d$ede!fd%d&Z"			d5d$ed'ee# d(ee$ d)ee de%f
d*d+Z&			d5d$ed'ee# d(ee$ d)ee de'f
d,d-Z(			d5d$ed'ee# d(ee$ d)ee de)f
d.d/Z*			d5d$ed'ee# d(ee$ d)ee de+f
d0d1Z,dS )6Channelr3   r4   _unary_unary_interceptors_unary_stream_interceptors_stream_unary_interceptors_stream_stream_interceptorstargetoptionsrU   r.   r>   c                 C   s   g | _ g | _g | _g | _|durc|D ]P}t|tr | j | qt|tr,| j| qt|tr8| j| qt|t	rD| j| qt
d|dtj dtj dtj dt	j t | _tt|t|||| j| _dS )a  Constructor.

        Args:
          target: The target to which to connect.
          options: Configuration options for the channel.
          credentials: A cygrpc.ChannelCredentials or None.
          compression: An optional value indicating the compression method to be
            used over the lifetime of the channel.
          interceptors: An optional list of interceptors that would be used for
            intercepting any RPC executed with that channel.
        NzInterceptor {} must be z{} or z{}. )rj   rk   rl   rm   rD   r   appendr   r   r   
ValueErrorformatrF   r
   Zget_working_loopr3   rL   r   encoder1   r4   )rA   rn   ro   rU   r.   r>   Zinterceptorr*   r*   r+   rB   D  s@   









zChannel.__init__c                    s   | S r&   r*   rA   r*   r*   r+   
__aenter__w  s   zChannel.__aenter__c                    s   |  d I d H  d S r&   _close)rA   exc_typeexc_valexc_tbr*   r*   r+   	__aexit__z     zChannel.__aexit__c                    s:  | j  rd S | j   t }g }g }|D ]h}z|jdd}W n ty9 } zdt|v r4W Y d }~q d }~ww |s=q|d }|jd}	|	d ur~t	|	t
jr~t|	dr^|	j | j ur]qnt|	drl|	jj | j urkqntd|	 ||	 || q|r|rtj||d	I d H  |D ]}
|
  q| j   d S )
Nr   )limitframer   rA   r4   _cython_callzUnrecognized call object: )rT   )r4   closedclosingr,   	get_stackAttributeErrorstrf_localsgetrD   r   Callhasattrr   r
   ZInternalErrorrp   r'   waitcancelclose)rA   gracetasksZcallsZ
call_taskstaskstackZattribute_errorr~   	candidaterZ   r*   r*   r+   rw   }  sR   






zChannel._closeNr   c                    s   |  |I d H  d S r&   rv   )rA   r   r*   r*   r+   r     r|   zChannel.closec                 C   s*   t | dr| j s| j  d S d S d S )Nr4   )r   r4   r   r   rt   r*   r*   r+   __del__  s
   

zChannel.__del__Ftry_to_connectr%   c                 C   s   | j |}tj| S r&   )r4   Zcheck_connectivity_stater   Z1CYGRPC_CONNECTIVITY_STATE_TO_CHANNEL_CONNECTIVITY)rA   r   resultr*   r*   r+   	get_state  s   
zChannel.get_statelast_observed_statec                    s$   | j |jd d I d H sJ d S )Nr   )r4   Zwatch_connectivity_statevalue)rA   r   r*   r*   r+   wait_for_state_change  s   
zChannel.wait_for_state_changec                    sJ   | j dd}|tjjkr#| |I d H  | j dd}|tjjksd S d S )NT)r   )r   rO   ChannelConnectivityZREADYr   )rA   stater*   r*   r+   channel_ready  s   zChannel.channel_readyr;   c                 C   s   d S r&   r*   )rA   r;   r*   r*   r+   _get_registered_call_handle  s   z#Channel._get_registered_call_handler<   r=   _registered_methodc                 C   "   t | jt|||| j| g| jS r&   )rR   r4   r   rs   rj   r3   rA   r;   r<   r=   r   r*   r*   r+   unary_unary     zChannel.unary_unaryc                 C   r   r&   )r`   r4   r   rs   rk   r3   r   r*   r*   r+   unary_stream   r   zChannel.unary_streamc                 C   r   r&   )rb   r4   r   rs   rl   r3   r   r*   r*   r+   stream_unary  r   zChannel.stream_unaryc                 C   r   r&   )rh   r4   r   rs   rm   r3   r   r*   r*   r+   stream_stream(  r   zChannel.stream_streamr&   )F)r%   N)NNF)-rF   rG   rH   r'   rJ   rK   r
   rL   r   r   r   r   r   r   r   r   rO   ChannelCredentialsrP   r   r   rB   ru   r{   rw   r\   r   r   r^   r   r   r   r   intr   r"   r   rR   r   r`   r   rb   r   rh   r   r*   r*   r*   r+   ri   <  s   
 



3K


	


ri   rn   ro   r>   c                 C   s   t | |du rdn|d||S )a  Creates an insecure asynchronous Channel to a server.

    Args:
      target: The server address
      options: An optional list of key-value pairs (:term:`channel_arguments`
        in gRPC Core runtime) to configure the channel.
      compression: An optional value indicating the compression method to be
        used over the lifetime of the channel.
      interceptors: An optional sequence of interceptors that will be executed for
        any call executed with this channel.

    Returns:
      A Channel.
    Nr*   )ri   )rn   ro   r.   r>   r*   r*   r+   insecure_channel:  s   r   rU   c                 C   s   t | |du rdn||j||S )a<  Creates a secure asynchronous Channel to a server.

    Args:
      target: The server address.
      credentials: A ChannelCredentials instance.
      options: An optional list of key-value pairs (:term:`channel_arguments`
        in gRPC Core runtime) to configure the channel.
      compression: An optional value indicating the compression method to be
        used over the lifetime of the channel.
      interceptors: An optional sequence of interceptors that will be executed for
        any call executed with this channel.

    Returns:
      An aio.Channel.
    Nr*   )ri   Z_credentials)rn   rU   ro   r.   r>   r*   r*   r+   secure_channelW  s   r   )NNN)?rI   r'   systypingr   r   r   r   r   rO   r   r   r	   Zgrpc._cythonr
    r   r   _callr   r   r   r   Z_interceptorr   r   r   r   r   r   r   r   r   	_metadatar   Z_typingr   r   r   r   r    r!   r"   _utilsr#   rr   __version__r/   version_infor(   r,   rP   r1   r2   rR   r`   rb   rh   ri   r   r   r   r   r*   r*   r*   r+   <module>   s   

4
-
.
--  

 
