o
    Ù­j7  ã                   @   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dejdee dejf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   úR/var/www/html/CropPilot/venv/lib/python3.10/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                   @   sJ   e Zd ZU eed< eed< dedefdd„Zdedee	e
  f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 u r| j jrd}t|ƒ‚d| j _nd}t|ƒ‚W d   ƒ n1 s*w   Y  |d u r>|  |tjjd ¡ d S |  d tjj	t
 t|ƒ¡¡ d S )Nz2AuthMetadataPluginCallback invoked more than once!TzEAuthMetadataPluginCallbackraised exception "{self._state.exception}"!)r   r   r   r   ÚRuntimeErrorr   r   Ú
StatusCodeÚokÚinternalr   ÚencodeÚstr)r   r   r    Ú	error_msgr   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< dejfdd„Zdededefdd	„Z	d
S )Ú_PluginÚ_metadata_pluginÚmetadata_pluginc                 C   s:   || _ d | _zdd l}| ¡ | _W d S  ty   Y d S w )Nr   )r,   Ú_stored_ctxÚcontextvarsÚ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 d S  tyh } zBt d| j¡ |j	� ||_|j
rA	 W d   ƒ W Y d }~d S W d   ƒ n1 sKw   Y  |d tjjt t|ƒ¡ƒ W Y d }~d S d }~ww )Nz1AuthMetadataPluginCallback "%s" raised exception!)r   r   Údecoder   r,   r   Ú	ExceptionÚ_LOGGERr   r   r   r   r"   r$   r%   r&   )r   r   r   r   ÚcontextÚcallback_stater   r   r   r   r(   c   s2   ÿ

ÿþýþÿ€÷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   sN   |d u rz| j }W n ty   | jj }Y nw |}t t t| ƒt 	|¡¡¡S r   )
r	   ÚAttributeErrorÚ	__class__r7   ÚCallCredentialsr   ÚMetadataPluginCallCredentialsr+   r   r%   )r-   r9   Úeffective_namer   r   r   Ú metadata_plugin_call_credentialsz   s   
ÿÿÿr@   )ÚcollectionsÚloggingr   Útypingr   r   r   r7   r   Úgrpc._cythonr   Úgrpc._typingr   Ú	getLoggerr	   r4   Ú
namedtupler   r   Úobjectr   ÚAuthMetadataPluginCallbackr   r+   r8   r&   r=   r@   r   r   r   r   Ú<module>   s4   

þø!)ÿÿþ