o
    ~cA
                     @   sl   d Z ddlZddlmZmZ ddlZdejdee dee fddZ	G d	d
 d
ej
ZG dd dej
ZdS )z4GRPCAuthMetadataPlugins for standard authentication.    N)AnyOptionalcallbacktokenerrorc                 C   s   dd |ff}| || d S )NZauthorizationz	Bearer {})format)r   r   r   Zmetadata r   *lib/python3.10/site-packages/grpc/_auth.py_sign_request   s   r
   c                   @   sF   e Zd ZU dZeed< eed< defddZdej	dej
fd	d
ZdS )GoogleCallCredentialszEMetadata wrapper for GoogleCredentials from the oauth2client library._is_jwt_credentialscredentialsc                 C   s   || _ dt|jjv | _d S )Nadditional_claims)r   inspectZgetfullargspecget_access_tokenargsr   )selfr   r   r   r	   __init__"   s   
zGoogleCallCredentials.__init__contextr   c              
   C   sr   z| j r| jjd|jidj}n| j j}W n ty0 } zt|d | W Y d }~d S d }~ww t||d  d S )NZaud)r   )r   r   r   Zservice_urlaccess_token	Exceptionr
   )r   r   r   r   Z	exceptionr   r   r	   __call__)   s"   zGoogleCallCredentials.__call__N)__name__
__module____qualname____doc__bool__annotations__r   r   grpcAuthMetadataContextAuthMetadataPluginCallbackr   r   r   r   r	   r      s   
 r   c                   @   s>   e Zd ZU dZeed< defddZdejdej	fdd	Z
d
S )AccessTokenAuthMetadataPluginz2Metadata wrapper for raw access token credentials._access_tokenr   c                 C   s
   || _ d S N)r#   )r   r   r   r   r	   r   ?   s   
z&AccessTokenAuthMetadataPlugin.__init__r   r   c                 C   s   t || jd  d S r$   )r
   r#   )r   r   r   r   r   r	   r   B   s   z&AccessTokenAuthMetadataPlugin.__call__N)r   r   r   r   strr   r   r   r    r!   r   r   r   r   r	   r"   ;   s   
 r"   )r   r   typingr   r   r   r!   r%   r   r
   ZAuthMetadataPluginr   r"   r   r   r   r	   <module>   s   
