a
    !f                     @   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   V/var/www/html/python-backend/venv/lib/python3.9/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   0   s    z$_AuthMetadataPluginCallback.__init__)metadataerrorc                 C   s   | j jJ | j jd u r2| j jr(tdqDd| j _ntd| j jW d    n1 sX0    Y  |d u r~| |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__4   s"    

"z$_AuthMetadataPluginCallback.__call__N)r	   r
   r   r   __annotations__r   r   r   r   r   BaseExceptionr(   r   r   r   r   r   ,   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y4   Y n0 d S )Nr   )r,   Z_stored_ctxcontextvarscopy_contextImportError)r   r-   r.   r   r   r   r   K   s    z_Plugin.__init__)r   r   r   c                 C   s   t t|t|}t }z| |t|| W n ty } ztd| j |j	6 ||_|j
r~W d    W Y d }~d S W d    n1 s0    Y  |d tjjtt| W Y d }~n
d }~0 0 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(   Z   s(    

8
z_Plugin.__call__N)
r	   r
   r   grpcAuthMetadataPluginr)   r   r'   r   r(   r   r   r   r   r+   H   s   

r+   )r-   namereturnc                 C   sP   |d u r0z
| j }W q4 ty,   | jj }Y q40 n|}ttt| t	|S r   )
r	   AttributeError	__class__r5   CallCredentialsr   ZMetadataPluginCallCredentialsr+   r   r&   )r-   r7   Zeffective_namer   r   r    metadata_plugin_call_credentialsm   s    

r<   )collectionsloggingr   typingr   r   r   r5   r   Zgrpc._cythonr   Zgrpc._typingr   	getLoggerr	   r3   
namedtupler   r   objectr   ZAuthMetadataPluginCallbackr   r+   r6   r'   r;   r<   r   r   r   r   <module>   s$   


&
