Ë
    '<çi$  ã                   óž   — d dl Z d dlmZmZ d dlmZmZmZmZm	Z	  e j                  e«      Z G d„ d«      Z G d„ dee«      Z G d„ d	e«      Zy)
é    N)ÚABCÚabstractmethod)ÚAnyÚCallableÚOptionalÚTupleÚUnionc                   ó\   — e Zd ZdZdeee   eeef   f   fd„Zdeee   eeef   f   fd„Zy)ÚCredentialProviderz
    Credentials Provider.
    Úreturnc                 ó   — t        d«      ‚)Nz#get_credentials must be implemented)ÚNotImplementedError©Úselfs    úw/home/jay/workspace/.worktrees/task-2057-dev2/scripts/.codegraph-venv/lib/python3.12/site-packages/redis/credentials.pyÚget_credentialsz"CredentialProvider.get_credentials   s   € Ü!Ð"GÓHÐHó    c              ƒ   óT   K  — t         j                  d«       | j                  «       S ­w)Nz[This method is added for backward compatability. Please override it in your implementation.)ÚloggerÚwarningr   r   s    r   Úget_credentials_asyncz(CredentialProvider.get_credentials_async   s(   è ø€ Ü‰ð9ô	
ð ×#Ñ#Ó%Ð%ùs   ‚&(N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   Ústrr   r   © r   r   r   r      sM   „ ñðI  u¨S¡z°5¸¸c¸±?Ð'BÑ!Có Ið&¨U°5¸±:¸uÀSÈ#ÀX¹Ð3NÑ-Oô &r   r   c                   ój   — e Zd ZdZedeegdf   fd„«       Zedeegdf   fd„«       Z	ede
fd„«       Zy)ÚStreamingCredentialProviderzI
    Credential provider that streams credentials in the background.
    ÚcallbackNc                  ó   — y)z­
        Specifies the callback that should be invoked
        when the next credentials will be retrieved.

        :param callback: Callback with
        :return:
        Nr   ©r   r    s     r   Úon_nextz#StreamingCredentialProvider.on_next   s   € ð 	r   c                  ó   — y ©Nr   r"   s     r   Úon_errorz$StreamingCredentialProvider.on_error(   ó   € àr   r   c                  ó   — y r%   r   r   s    r   Úis_streamingz(StreamingCredentialProvider.is_streaming,   r'   r   )r   r   r   r   r   r   r   r#   Ú	Exceptionr&   Úboolr)   r   r   r   r   r      so   „ ñð ð ¨#¨°¨Ñ 5ò ó ðð ð ¨9¨+°tÐ*;Ñ!<ò ó ðð ð˜dò ó ñr   r   c                   óZ   — e Zd ZdZd	dee   dee   fd„Zd„ Zdee	e   e	eef   f   fd„Z
y)
Ú"UsernamePasswordCredentialProviderzg
    Simple implementation of CredentialProvider that just wraps static
    username and password.
    NÚusernameÚpasswordc                 ó0   — |xs d| _         |xs d| _        y )NÚ ©r.   r/   )r   r.   r/   s      r   Ú__init__z+UsernamePasswordCredentialProvider.__init__7   s   € Ø š BˆŒØ š Bˆr   c                 ód   — | j                   r| j                   | j                  fS | j                  fS r%   r2   r   s    r   r   z2UsernamePasswordCredentialProvider.get_credentials;   s)   € Ø=Š=Ø—=‘= $§-¡-Ð/Ð/Ø—‘ÐÐr   r   c              ƒ   ó*   K  — | j                  «       S ­wr%   )r   r   s    r   r   z8UsernamePasswordCredentialProvider.get_credentials_async@   s   è ø€ Ø×#Ñ#Ó%Ð%ùs   ‚)NN)r   r   r   r   r   r   r3   r   r	   r   r   r   r   r   r-   r-   1   sI   „ ññ
' ¨#¡ð 'ÀÈ#Áó 'ò ð
&¨U°5¸±:¸uÀSÈ#ÀX¹Ð3NÑ-Oô &r   r-   )ÚloggingÚabcr   r   Útypingr   r   r   r   r	   Ú	getLoggerr   r   r   r   r-   r   r   r   ú<module>r:      sI   ðÛ ß #ß 8Õ 8à	ˆ×	Ñ	˜8Ó	$€÷&ñ &ô Ð"4°cô ô2&Ð);õ &r   