U
    ËZje  ã                	   @   s´  d Z ddlZddlZddlZddlmZ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 G d
d„ deƒZeeej  ee dœdd„ZG dd„ de dd¡ejƒZejeje	eeeejeejf dœdd„ZG dd„ dejej ej!ƒZ"G dd„ dej!ej ƒ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j*ƒZ+G d!d"„ d"ej,ƒZ-ej,eee
ej.ej/ej0ej1f   ej,d#œd$d%„Z2dS )&z+Implementation of gRPC Python interceptors.é    N)ÚAnyÚCallableÚOptionalÚSequenceÚTupleÚUnioné   )ÚDeserializingFunction)ÚDoneCallbackType)ÚMetadataType)ÚRequestIterableType)ÚSerializingFunctionc                   @   sp   e Zd ZU eej ed< eej dœdd„Ze	e
e	dœdd„Ze	e
ejejdœd	d
„Ze	ejejdœdd„ZdS )Ú_ServicePipelineÚinterceptors©r   c                 C   s   t |ƒ| _d S ©N)Útupler   )Úselfr   © r   úT/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/grpc/_interceptor.pyÚ__init__!   s    z_ServicePipeline.__init__)ÚthunkÚindexÚreturnc                    s   ‡ ‡‡fdd„S )Nc                    s   ˆ  ˆˆ | ¡S r   ©Ú_intercept_at)Úcontext©r   r   r   r   r   Ú<lambda>%   ó    z0_ServicePipeline._continuation.<locals>.<lambda>r   )r   r   r   r   r   r   Ú_continuation$   s    z_ServicePipeline._continuation)r   r   r   r   c                 C   s@   |t | jƒk r4| j| }|  ||d ¡}| ||¡S ||ƒS d S )Nr   )Úlenr   r    Zintercept_service)r   r   r   r   Úinterceptorr   r   r   r   '   s
    
z_ServicePipeline._intercept_at)r   r   r   c                 C   s   |   |d|¡S )Nr   r   )r   r   r   r   r   r   Úexecute1   s    z_ServicePipeline.executeN)Ú__name__Ú
__module__Ú__qualname__r   ÚgrpcÚServerInterceptorÚ__annotations__r   r   r   Úintr    ZHandlerCallDetailsZRpcMethodHandlerr   r#   r   r   r   r   r      s   
  þ þr   )r   r   c                 C   s   | rt | ƒS d S r   )r   r   r   r   r   Úservice_pipeline7   s    r+   c                   @   s   e Zd ZdS )Ú_ClientCallDetailsN)r$   r%   r&   r   r   r   r   r,   =   s   r,   )ÚmethodÚtimeoutÚmetadataÚcredentialsÚwait_for_readyÚcompression)Úcall_detailsÚdefault_detailsr   c                 C   sô   z
| j }W n tk
r$   |j }Y nX z
| j}W n tk
rJ   |j}Y nX z
| j}W n tk
rp   |j}Y nX z
| j}W n tk
r–   |j}Y nX z
| j}W n tk
r¼   |j}Y nX z
| j}W n tk
râ   |j}Y nX ||||||fS r   )r-   ÚAttributeErrorr.   r/   r0   r1   r2   )r3   r4   r-   r.   r/   r0   r1   r2   r   r   r   Ú_unwrap_client_call_detailsN   s>    


ÿÿÿÿÿÿr6   c                       s\  e Zd ZU eed< ejed< eejdœ‡ fdd„Zee	 dœdd„Z
ee	 dœd	d
„Zeej dœdd„Zee dœdd„Zedœdd„Zedœdd„Zedœdd„Zee dœdd„Zedœdd„Zedœdd„Zd/ee dœdd„Zd0ee ee dœd d!„Zd1ee eej dœd"d#„Zedœd$d%„Zedd&œd'd(„Zd)d*„ Zd+d,„ Z d-d.„ Z!‡  Z"S )2Ú_FailureOutcomeÚ
_exceptionÚ
_traceback)Ú	exceptionÚ	tracebackc                    s   t t| ƒ ¡  || _|| _d S r   )Úsuperr7   r   r8   r9   )r   r:   r;   ©Ú	__class__r   r   r   ‡   s    z_FailureOutcome.__init__©r   c                 C   s   d S r   r   ©r   r   r   r   Úinitial_metadataŒ   s    z _FailureOutcome.initial_metadatac                 C   s   d S r   r   r@   r   r   r   Útrailing_metadata�   s    z!_FailureOutcome.trailing_metadatac                 C   s   t jjS r   )r'   Ú
StatusCodeZINTERNALr@   r   r   r   Úcode’   s    z_FailureOutcome.codec                 C   s   dS )Nz+Exception raised while intercepting the RPCr   r@   r   r   r   Údetails•   s    z_FailureOutcome.detailsc                 C   s   dS ©NFr   r@   r   r   r   Úcancel˜   s    z_FailureOutcome.cancelc                 C   s   dS rF   r   r@   r   r   r   Ú	cancelled›   s    z_FailureOutcome.cancelledc                 C   s   dS rF   r   r@   r   r   r   Ú	is_activež   s    z_FailureOutcome.is_activec                 C   s   d S r   r   r@   r   r   r   Útime_remaining¡   s    z_FailureOutcome.time_remainingc                 C   s   dS rF   r   r@   r   r   r   Úrunning¤   s    z_FailureOutcome.runningc                 C   s   dS ©NTr   r@   r   r   r   Údone§   s    z_FailureOutcome.doneN©Úignored_timeoutc                 C   s
   | j ‚d S r   ©r8   ©r   rO   r   r   r   Úresultª   s    z_FailureOutcome.result)rO   r   c                 C   s   | j S r   rP   rQ   r   r   r   r:   ­   s    z_FailureOutcome.exceptionc                 C   s   | j S r   )r9   rQ   r   r   r   r;   ²   s    z_FailureOutcome.tracebackc                 C   s   dS rF   r   )r   Zunused_callbackr   r   r   Úadd_callback·   s    z_FailureOutcome.add_callback©Úfnr   c                 C   s   || ƒ d S r   r   ©r   rU   r   r   r   Úadd_done_callbackº   s    z!_FailureOutcome.add_done_callbackc                 C   s   | S r   r   r@   r   r   r   Ú__iter__½   s    z_FailureOutcome.__iter__c                 C   s
   | j ‚d S r   rP   r@   r   r   r   Ú__next__À   s    z_FailureOutcome.__next__c                 C   s   |   ¡ S r   )rY   r@   r   r   r   ÚnextÃ   s    z_FailureOutcome.next)N)N)N)#r$   r%   r&   Ú	Exceptionr)   ÚtypesÚTracebackTyper   r   r   rA   rB   r'   rC   rD   ÚstrrE   ÚboolrG   rH   rI   ÚfloatrJ   rK   rM   rR   r:   r;   rS   r
   rW   rX   rY   rZ   Ú__classcell__r   r   r=   r   r7   �   s:   

 ÿþ ÿþr7   c                   @   s.  e Zd ZU eed< ejed< eejdœdd„Zee	 dœdd„Z
ee	 dœd	d
„Zeej dœdd„Zee dœdd„Zedœdd„Zee dœdd„Zedœdd„Zedœdd„Zedœdd„Zedœdd„Zedœdd„Zd(ee dœdd „Zd)ee dœd!d"„Zd*ee dœd#d$„Zedd%œd&d'„ZdS )+Ú_UnaryOutcomeÚ	_responseÚ_call)ÚresponseÚcallc                 C   s   || _ || _d S r   )rc   rd   )r   re   rf   r   r   r   r   Ë   s    z_UnaryOutcome.__init__r?   c                 C   s
   | j  ¡ S r   )rd   rA   r@   r   r   r   rA   Ï   s    z_UnaryOutcome.initial_metadatac                 C   s
   | j  ¡ S r   )rd   rB   r@   r   r   r   rB   Ò   s    z_UnaryOutcome.trailing_metadatac                 C   s
   | j  ¡ S r   )rd   rD   r@   r   r   r   rD   Õ   s    z_UnaryOutcome.codec                 C   s
   | j  ¡ S r   )rd   rE   r@   r   r   r   rE   Ø   s    z_UnaryOutcome.detailsc                 C   s
   | j  ¡ S r   )rd   rI   r@   r   r   r   rI   Û   s    z_UnaryOutcome.is_activec                 C   s
   | j  ¡ S r   )rd   rJ   r@   r   r   r   rJ   Þ   s    z_UnaryOutcome.time_remainingc                 C   s
   | j  ¡ S r   )rd   rG   r@   r   r   r   rG   á   s    z_UnaryOutcome.cancelc                 C   s   | j  |¡S r   )rd   rS   ©r   Úcallbackr   r   r   rS   ä   s    z_UnaryOutcome.add_callbackc                 C   s   dS rF   r   r@   r   r   r   rH   ç   s    z_UnaryOutcome.cancelledc                 C   s   dS rF   r   r@   r   r   r   rK   ê   s    z_UnaryOutcome.runningc                 C   s   dS rL   r   r@   r   r   r   rM   í   s    z_UnaryOutcome.doneNrN   c                 C   s   | j S r   )rc   rQ   r   r   r   rR   ð   s    z_UnaryOutcome.resultc                 C   s   d S r   r   rQ   r   r   r   r:   ó   s    z_UnaryOutcome.exceptionc                 C   s   d S r   r   rQ   r   r   r   r;   ö   s    z_UnaryOutcome.tracebackrT   c                 C   s   || ƒ d S r   r   rV   r   r   r   rW   ù   s    z_UnaryOutcome.add_done_callback)N)N)N)r$   r%   r&   r   r)   r'   ÚCallr   r   r   rA   rB   rC   rD   r^   rE   r_   rI   r`   rJ   rG   rS   rH   rK   rM   rR   r:   r;   r
   rW   r   r   r   r   rb   Ç   s$   

rb   c                
   @   s   e Zd ZU eed< eed< ejed< eeejdœdd„Zde	e
e e
e e
ej e
e e
ej e	dœd	d
„Zde	e
e e
e e
ej e
e e
ej ee	ejf dœdd„Zde	e
e e
e e
ej e
e e
ej ee	ejf dœdd„Zde	e
e e
e e
ej e
e e
ej e	dœdd„ZdS )Ú_UnaryUnaryMultiCallableÚ_thunkÚ_methodÚ_interceptor©r   r-   r"   c                 C   s   || _ || _|| _d S r   ©rk   rl   rm   ©r   r   r-   r"   r   r   r   r     s    z!_UnaryUnaryMultiCallable.__init__N)Úrequestr.   r/   r0   r1   r2   r   c           	      C   s   | j ||||||d�\}}|S ©N©r.   r/   r0   r1   r2   ©Ú
_with_call)	r   rq   r.   r/   r0   r1   r2   re   Úignored_callr   r   r   Ú__call__  s    	ú
z!_UnaryUnaryMultiCallable.__call__c           	         s>   t ˆj|||||ƒ‰ ‡ ‡fdd„}ˆj |ˆ |¡}| ¡ |fS )Nc              
      sª   t | ˆ ƒ\}}}}}}z,ˆ |¡j||||||d�\}}	t||	ƒW S  tjk
rn }
 z|
 W Y ¢S d }
~
X Y n8 tk
r¤ } zt|t 	¡ d ƒ W Y ¢S d }~X Y nX d S ©Nrs   é   ©
r6   rk   Ú	with_callrb   r'   ÚRpcErrorr[   r7   ÚsysÚexc_info)Únew_detailsrq   Ú
new_methodÚnew_timeoutÚnew_metadataÚnew_credentialsÚnew_wait_for_readyÚnew_compressionre   rf   Ú	rpc_errorr:   ©Zclient_call_detailsr   r   r   Úcontinuation1  s,    ù
ú
z9_UnaryUnaryMultiCallable._with_call.<locals>.continuation)r,   rl   rm   Úintercept_unary_unaryrR   )	r   rq   r.   r/   r0   r1   r2   rˆ   rf   r   r‡   r   ru     s    	ú	  ÿz#_UnaryUnaryMultiCallable._with_callc                 C   s   | j ||||||d�S rr   rt   )r   rq   r.   r/   r0   r1   r2   r   r   r   r{   N  s    	úz"_UnaryUnaryMultiCallable.with_callc           	   
      sr   t ˆj|||||ƒ‰ ‡ ‡fdd„}zˆj |ˆ |¡W S  tk
rl } zt|t ¡ d ƒ W Y ¢S d }~X Y nX d S )Nc                    s2   t | ˆ ƒ\}}}}}}ˆ |¡j||||||d�S rr   ©r6   rk   Úfuture©r   rq   r€   r�   r‚   rƒ   r„   r…   r‡   r   r   rˆ   r  s     ù
úz5_UnaryUnaryMultiCallable.future.<locals>.continuationry   )r,   rl   rm   r‰   r[   r7   r}   r~   ©	r   rq   r.   r/   r0   r1   r2   rˆ   r:   r   r‡   r   r‹   `  s"    	ú	  ÿz_UnaryUnaryMultiCallable.future)NNNNN)NNNNN)NNNNN)NNNNN)r$   r%   r&   r   r)   r^   r'   ÚUnaryUnaryClientInterceptorr   r   r   r`   r   ÚCallCredentialsr_   ÚCompressionrw   r   ri   ru   r{   r‹   r   r   r   r   rj   ý   s~   

ü     ùø     ùø2     ùø     ùørj   c                   @   sn   e Zd ZU eed< eed< ejed< eeejdœdd„Zde	e
e e
e e
ej e
e e
ej dœd	d
„ZdS )Ú_UnaryStreamMultiCallablerk   rl   rm   rn   c                 C   s   || _ || _|| _d S r   ro   rp   r   r   r   r   ‘  s    z"_UnaryStreamMultiCallable.__init__N)rq   r.   r/   r0   r1   r2   c           	   
      sr   t ˆj|||||ƒ‰ ‡ ‡fdd„}zˆj |ˆ |¡W S  tk
rl } zt|t ¡ d ƒ W Y ¢S d }~X Y nX d S )Nc                    s0   t | ˆ ƒ\}}}}}}ˆ |¡||||||d�S rr   ©r6   rk   rŒ   r‡   r   r   rˆ   ­  s     ùúz8_UnaryStreamMultiCallable.__call__.<locals>.continuationry   )r,   rl   rm   Zintercept_unary_streamr[   r7   r}   r~   r�   r   r‡   r   rw   ›  s"    	ú	  ÿz"_UnaryStreamMultiCallable.__call__)NNNNN)r$   r%   r&   r   r)   r^   r'   ÚUnaryStreamClientInterceptorr   r   r   r`   r   r�   r_   r�   rw   r   r   r   r   r‘   Œ  s(   

ü     ùùr‘   c                
   @   s   e Zd ZU eed< eed< ejed< eeejdœdd„Zde	e
e e
e e
ej e
e e
ej edœd	d
„Zde	e
e e
e e
ej e
e e
ej eeejf dœdd„Zde	e
e e
e e
ej e
e e
ej eeejf dœdd„Zde	e
e e
e e
ej e
e e
ej edœdd„ZdS )Ú_StreamUnaryMultiCallablerk   rl   rm   rn   c                 C   s   || _ || _|| _d S r   ro   rp   r   r   r   r   Ì  s    z"_StreamUnaryMultiCallable.__init__N)Úrequest_iteratorr.   r/   r0   r1   r2   r   c           	      C   s   | j ||||||d�\}}|S rr   rt   )	r   r•   r.   r/   r0   r1   r2   re   rv   r   r   r   rw   Ö  s    	ú
z"_StreamUnaryMultiCallable.__call__c           	         s>   t ˆj|||||ƒ‰ ‡ ‡fdd„}ˆj |ˆ |¡}| ¡ |fS )Nc              
      sª   t | ˆ ƒ\}}}}}}z,ˆ |¡j||||||d�\}}	t||	ƒW S  tjk
rn }
 z|
 W Y ¢S d }
~
X Y n8 tk
r¤ } zt|t 	¡ d ƒ W Y ¢S d }~X Y nX d S rx   rz   )r   r•   r€   r�   r‚   rƒ   r„   r…   re   rf   r†   r:   r‡   r   r   rˆ   û  s,    ù
ú
z:_StreamUnaryMultiCallable._with_call.<locals>.continuation)r,   rl   rm   Úintercept_stream_unaryrR   )	r   r•   r.   r/   r0   r1   r2   rˆ   rf   r   r‡   r   ru   é  s    	ú	  ÿz$_StreamUnaryMultiCallable._with_callc                 C   s   | j ||||||d�S rr   rt   )r   r•   r.   r/   r0   r1   r2   r   r   r   r{     s    	úz#_StreamUnaryMultiCallable.with_callc           	   
      sr   t ˆj|||||ƒ‰ ‡ ‡fdd„}zˆj |ˆ |¡W S  tk
rl } zt|t ¡ d ƒ W Y ¢S d }~X Y nX d S )Nc                    s2   t | ˆ ƒ\}}}}}}ˆ |¡j||||||d�S rr   rŠ   ©r   r•   r€   r�   r‚   rƒ   r„   r…   r‡   r   r   rˆ   <  s     ù
úz6_StreamUnaryMultiCallable.future.<locals>.continuationry   )r,   rl   rm   r–   r[   r7   r}   r~   ©	r   r•   r.   r/   r0   r1   r2   rˆ   r:   r   r‡   r   r‹   *  s"    	ú	  ÿz _StreamUnaryMultiCallable.future)NNNNN)NNNNN)NNNNN)NNNNN)r$   r%   r&   r   r)   r^   r'   ÚStreamUnaryClientInterceptorr   r   r   r`   r   r�   r_   r�   r   rw   r   ri   ru   r{   r‹   r   r   r   r   r”   Ç  s~   

ü     ùø     ùø2     ùø     ùør”   c                   @   sn   e Zd ZU eed< eed< ejed< eeejdœdd„Zde	e
e e
e e
ej e
e e
ej dœd	d
„ZdS )Ú_StreamStreamMultiCallablerk   rl   rm   rn   c                 C   s   || _ || _|| _d S r   ro   rp   r   r   r   r   [  s    z#_StreamStreamMultiCallable.__init__N)r•   r.   r/   r0   r1   r2   c           	   
      sr   t ˆj|||||ƒ‰ ‡ ‡fdd„}zˆj |ˆ |¡W S  tk
rl } zt|t ¡ d ƒ W Y ¢S d }~X Y nX d S )Nc                    s0   t | ˆ ƒ\}}}}}}ˆ |¡||||||d�S rr   r’   r—   r‡   r   r   rˆ   w  s     ùúz9_StreamStreamMultiCallable.__call__.<locals>.continuationry   )r,   rl   rm   Zintercept_stream_streamr[   r7   r}   r~   r˜   r   r‡   r   rw   e  s"    	ú	  ÿz#_StreamStreamMultiCallable.__call__)NNNNN)r$   r%   r&   r   r)   r^   r'   ÚStreamStreamClientInterceptorr   r   r   r`   r   r�   r_   r�   rw   r   r   r   r   rš   V  s(   

ü     ùùrš   c                   @   s6  e Zd ZU ejed< eejejej	ej
f ed< ejeejejej	ej
f dœdd„Zdeee dœdd	„Zed
œdd„Zd eee ee ee ejdœdd„Zd!eee ee ee ejdœdd„Zd"eee ee ee ejdœdd„Zd#eee ee ee ejdœdd„Zdd„ Zdd„ Zdd„ Zdd„ ZdS )$Ú_ChannelÚ_channelrm   )Úchannelr"   c                 C   s   || _ || _d S r   )r�   rm   )r   rž   r"   r   r   r   r   š  s    
z_Channel.__init__F)rh   Útry_to_connectc                 C   s   | j j||d� d S )N)rŸ   )r�   Ú	subscribe)r   rh   rŸ   r   r   r   r    §  s    z_Channel.subscribe)rh   c                 C   s   | j  |¡ d S r   )r�   Úunsubscriberg   r   r   r   r¡   ¬  s    z_Channel.unsubscribeN)r-   Úrequest_serializerÚresponse_deserializerÚ_registered_methodr   c                    s:   ‡ ‡‡‡fdd„}t ˆjtjƒr.t||ˆjƒS ||ƒS d S )Nc                    s   ˆj  | ˆˆˆ ¡S r   )r�   Úunary_unary©Úm©r¤   r¢   r£   r   r   r   r   ¸  s
   üz&_Channel.unary_unary.<locals>.<lambda>)Ú
isinstancerm   r'   rŽ   rj   ©r   r-   r¢   r£   r¤   r   r   r¨   r   r¥   °  s    z_Channel.unary_unaryc                    s:   ‡ ‡‡‡fdd„}t ˆjtjƒr.t||ˆjƒS ||ƒS d S )Nc                    s   ˆj  | ˆˆˆ ¡S r   )r�   Úunary_streamr¦   r¨   r   r   r   Í  s
   üz'_Channel.unary_stream.<locals>.<lambda>)r©   rm   r'   r“   r‘   rª   r   r¨   r   r«   Å  s    z_Channel.unary_streamc                    s:   ‡ ‡‡‡fdd„}t ˆjtjƒr.t||ˆjƒS ||ƒS d S )Nc                    s   ˆj  | ˆˆˆ ¡S r   )r�   Ústream_unaryr¦   r¨   r   r   r   â  s
   üz'_Channel.stream_unary.<locals>.<lambda>)r©   rm   r'   r™   r”   rª   r   r¨   r   r¬   Ú  s    z_Channel.stream_unaryc                    s:   ‡ ‡‡‡fdd„}t ˆjtjƒr.t||ˆjƒS ||ƒS d S )Nc                    s   ˆj  | ˆˆˆ ¡S r   )r�   Ústream_streamr¦   r¨   r   r   r   ÷  s
   üz(_Channel.stream_stream.<locals>.<lambda>)r©   rm   r'   r›   rš   rª   r   r¨   r   r­   ï  s    z_Channel.stream_streamc                 C   s   | j  ¡  d S r   ©r�   Úcloser@   r   r   r   Ú_close  s    z_Channel._closec                 C   s   | S r   r   r@   r   r   r   Ú	__enter__  s    z_Channel.__enter__c                 C   s   |   ¡  dS rF   )r°   )r   Úexc_typeÚexc_valÚexc_tbr   r   r   Ú__exit__	  s    z_Channel.__exit__c                 C   s   | j  ¡  d S r   r®   r@   r   r   r   r¯     s    z_Channel.close)F)NNF)NNF)NNF)NNF) r$   r%   r&   r'   ÚChannelr)   r   rŽ   r“   r›   r™   r   r   r   r_   r    r¡   r^   r   r	   ÚUnaryUnaryMultiCallabler¥   ÚUnaryStreamMultiCallabler«   ÚStreamUnaryMultiCallabler¬   ÚStreamStreamMultiCallabler­   r°   r±   rµ   r¯   r   r   r   r   rœ   ‘  s†   

ýÿ	ýÿý ÿ ÿ   ûú   ûú   ûú   ûúrœ   )rž   r   r   c                 G   sX   t t|ƒƒD ]F}t|tjƒsHt|tjƒsHt|tjƒsHt|tjƒsHtdƒ‚t	| |ƒ} q| S )Nz¨interceptor must be grpc.UnaryUnaryClientInterceptor or grpc.UnaryStreamClientInterceptor or grpc.StreamUnaryClientInterceptor or grpc.StreamStreamClientInterceptor or )
ÚreversedÚlistr©   r'   rŽ   r“   r™   r›   Ú	TypeErrorrœ   )rž   r   r"   r   r   r   Úintercept_channel  s    
ÿ
þ
ý
üÿr¾   )3Ú__doc__Úcollectionsr}   r\   Útypingr   r   r   r   r   r   r'   Z_typingr	   r
   r   r   r   Úobjectr   r(   r+   Ú
namedtupleZClientCallDetailsr,   r^   r`   r�   r_   r�   r6   r|   ÚFutureri   r7   rb   r·   rj   r¸   r‘   r¹   r”   rº   rš   r¶   rœ   rŽ   r“   r›   r™   r¾   r   r   r   r   Ú<module>   sn    þ
þôÿý3
  ÿF6 ; ; ýÿÿÿ
ô