U
    ËZj  ã                   @   sÎ   d dl Z d dlZd dlZd dl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 e e¡ZG dd„ de  dd	¡ejƒZG d
d„ deƒZG dd„ dejƒZG dd„ deƒZejee ejdœdd„ZdS )é    N)ÚCallableÚOptionalÚType)Ú_common)Úcygrpc)ÚMetadataTypec                   @   s   e Zd ZdS )Ú_AuthMetadataContextN)Ú__name__Ú
__module__Ú__qualname__© r   r   úX/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/grpc/_plugin_wrapping.pyr      s   
r   ÚAuthMetadataContext)Úservice_urlÚmethod_namec                   @   s   e Zd Zdd„ ZdS )Ú_CallbackStatec                 C   s   t  ¡ | _d| _d | _d S )NF)Ú	threadingÚLockÚlockÚcalledÚ	exception)Úselfr   r   r   Ú__init__*   s    
z_CallbackState.__init__N)r	   r
   r   r   r   r   r   r   r   )   s   r   c                   @   sF   e Zd ZU eed< eed< eedœdd„Zeee	e
  dœdd„Zd	S )
Ú_AuthMetadataPluginCallbackÚ_stateÚ	_callback)ÚstateÚcallbackc                 C   s   || _ || _d S ©N)r   r   )r   r   r   r   r   r   r   4   s    z$_AuthMetadataPluginCallback.__init__)ÚmetadataÚerrorc              	   C   sŠ   | j j�@ | j jd kr2| j jr(tdƒ‚qDd| j _ntd | j j¡ƒ‚W 5 Q R X |d krj|  |tjj	d ¡ n|  d tjj
t t|ƒ¡¡ d S )Nz2AuthMetadataPluginCallback invoked more than once!Tz1AuthMetadataPluginCallback raised exception "{}"!)r   r   r   r   ÚRuntimeErrorÚformatr   r   Ú
StatusCodeÚokÚinternalr   ÚencodeÚstr)r   r   r    r   r   r   Ú__call__8   s&    
ÿ
ÿÿ  ÿz$_AuthMetadataPluginCallback.__call__N)r	   r
   r   r   Ú__annotations__r   r   r   r   r   ÚBaseExceptionr(   r   r   r   r   r   0   s   
 
ÿr   c                   @   s:   e Zd ZU ejed< ejdœdd„Zeeedœdd„Z	dS )	Ú_PluginÚ_metadata_plugin)Úmetadata_pluginc                 C   s<   || _ d | _zdd l}| ¡ | _W n tk
r6   Y nX d S )Nr   )r,   Z_stored_ctxÚcontextvarsZcopy_contextÚImportError)r   r-   r.   r   r   r   r   T   s    z_Plugin.__init__)r   r   r   c                 C   s´   t t |¡t |¡ƒ}tƒ }z|  |t||ƒ¡ W n| tk
r® } z^t d| j¡ |j	�& ||_|j
rzW 5 Q R £ W Y ¢,d S W 5 Q R X |d tjjt t|ƒ¡ƒ W 5 d }~X Y nX d S )Nz1AuthMetadataPluginCallback "%s" raised exception!)r   r   Údecoder   r,   r   Ú	ExceptionÚ_LOGGERr   r   r   r   r#   r%   r&   r'   )r   r   r   r   ÚcontextZcallback_stater   r   r   r   r(   c   s0     ÿ ÿþ  ÿz_Plugin.__call__N)
r	   r
   r   ÚgrpcÚAuthMetadataPluginr)   r   r'   r   r(   r   r   r   r   r+   Q   s   

r+   )r-   ÚnameÚreturnc                 C   sR   |d kr2z
| j }W q6 tk
r.   | jj }Y q6X n|}t t t| ƒt 	|¡¡¡S r   )
r	   ÚAttributeErrorÚ	__class__r4   ÚCallCredentialsr   ZMetadataPluginCallCredentialsr+   r   r&   )r-   r6   Zeffective_namer   r   r   Ú metadata_plugin_call_credentialsz   s    
 ÿÿr;   )ÚcollectionsÚloggingr   Útypingr   r   r   r4   r   Zgrpc._cythonr   Zgrpc._typingr   Ú	getLoggerr	   r2   Ú
namedtupler   r   Úobjectr   ZAuthMetadataPluginCallbackr   r+   r5   r'   r:   r;   r   r   r   r   Ú<module>   s,   

þø!* þ