o
    ¾­§iŽ  ã                   @   st   d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
 dee
 fdd„Zd	ed
edeg ef fdd„ZdS )é    )ÚCallable)ÚTokenProvider)ÚBearerTokenCredentialPolicy)ÚPipelineRequestÚPipelineContext)ÚHttpRequestÚreturnc                   C   s   t tddƒtd ƒƒS )NZCredentialWrapperzhttps://fakeurl)r   r   r   © r	   r	   ú\/home/app/Keep/.python/lib/python3.10/site-packages/azure/identity/_bearer_token_provider.pyÚ_make_request   s   r   Ú
credentialÚscopesc                    s&   t | g|¢R Ž ‰ dtf‡ fdd„}|S )añ  Returns a callable that provides a bearer token.

    It can be used for instance to write code like:

    .. code-block:: python

        from azure.identity import DefaultAzureCredential, get_bearer_token_provider

        credential = DefaultAzureCredential()
        bearer_token_provider = get_bearer_token_provider(credential, "https://cognitiveservices.azure.com/.default")

        # Usage
        request.headers["Authorization"] = "Bearer " + bearer_token_provider()

    :param credential: The credential used to authenticate the request.
    :type credential: ~azure.core.credentials.TokenProvider
    :param str scopes: The scopes required for the bearer token.
    :rtype: callable
    :return: A callable that returns a bearer token.
    r   c                     s(   t ƒ } ˆ  | ¡ | jjd tdƒd … S )NÚAuthorizationzBearer )r   Z
on_requestÚhttp_requestÚheadersÚlen)Úrequest©Úpolicyr	   r
   Úwrapper)   s   
z*get_bearer_token_provider.<locals>.wrapper)r   Ústr)r   r   r   r	   r   r
   Úget_bearer_token_provider   s   r   N)Útypingr   Zazure.core.credentialsr   Zazure.core.pipeline.policiesr   Zazure.core.pipeliner   r   Zazure.core.restr   r   r   r   r	   r	   r	   r
   Ú<module>   s   "