ó
    ùÞ j$  ã                   óž   • S SK r S SKJrJr  S SKJrJrJrJrJ	r	  \ R                  " \5      r " S S5      r " S S\\5      r " S S	\5      rg)
é    N)ÚABCÚabstractmethod)ÚAnyÚCallableÚOptionalÚTupleÚUnionc                   óh   • \ rS rSrSrS\\\   \\\4   4   4S jrS\\\   \\\4   4   4S jr	Sr
g)ÚCredentialProvideré   z
Credentials Provider.
Úreturnc                 ó   • [        S5      e)Nz#get_credentials must be implemented)ÚNotImplementedError©Úselfs    ÚK/var/www/html/gaurav/venv/lib/python3.13/site-packages/redis/credentials.pyÚget_credentialsÚ"CredentialProvider.get_credentials   s   € Ü!Ð"GÓHÐHó    c              ƒ   óT   #   • [         R                  S5        U R                  5       $ 7f)Nz[This method is added for backward compatability. Please override it in your implementation.)ÚloggerÚwarningr   r   s    r   Úget_credentials_asyncÚ(CredentialProvider.get_credentials_async   s'   é € Ü�‰ð9ô	
ð ×#Ñ#Ó%Ð%ùs   ‚&(© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r	   r   Ústrr   r   Ú__static_attributes__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                   óx   • \ rS rSrSr\S\\/S4   4S j5       r\S\\	/S4   4S j5       r
\S\4S j5       rS	rg)
ÚStreamingCredentialProvideré   zA
Credential provider that streams credentials in the background.
ÚcallbackNc                 ó   • g)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_nextÚ#StreamingCredentialProvider.on_next   s   € ð 	r   c                 ó   • g ©Nr   r(   s     r   Úon_errorÚ$StreamingCredentialProvider.on_error(   ó   € àr   r   c                 ó   • g r,   r   r   s    r   Úis_streamingÚ(StreamingCredentialProvider.is_streaming,   r/   r   r   )r   r   r   r   r    r   r   r   r)   Ú	Exceptionr-   Úboolr1   r"   r   r   r   r$   r$      so   † ñð ð ¨#¨°¨Ñ 5ó ó ðð ð ¨9¨+°tÐ*;Ñ!<ó ó ðð ð˜dó ó ór   r$   c                   óh   • \ rS rSrSrSS\\   S\\   4S jjrS rS\	\
\   \
\\4   4   4S	 jrS
rg)Ú"UsernamePasswordCredentialProvideré1   z[
Simple implementation of CredentialProvider that just wraps static
username and password.
NÚusernameÚpasswordc                 óD   • U=(       d    SU l         U=(       d    SU l        g )NÚ ©r8   r9   )r   r8   r9   s      r   Ú__init__Ú+UsernamePasswordCredentialProvider.__init__7   s   € Ø Ÿ BˆŒØ Ÿ Bˆ�r   c                 ón   • U R                   (       a  U R                   U R                  4$ U R                  4$ r,   r<   r   s    r   r   Ú2UsernamePasswordCredentialProvider.get_credentials;   s)   € Ø�=�=Ø—=‘= $§-¡-Ð/Ð/Ø—‘ÐÐr   r   c              ƒ   ó*   #   • U R                  5       $ 7fr,   )r   r   s    r   r   Ú8UsernamePasswordCredentialProvider.get_credentials_async@   s   é € Ø×#Ñ#Ó%Ð%ùs   ‚)r9   r8   )NN)r   r   r   r   r    r   r!   r=   r   r	   r   r   r"   r   r   r   r6   r6   1   sI   † ññ
' ¨#¡ð 'ÀÈ#Áõ 'ò ð
&¨U°5¸±:¸uÀSÈ#ÀX¹Ð3NÑ-O÷ &r   r6   )ÚloggingÚabcr   r   Útypingr   r   r   r   r	   Ú	getLoggerr   r   r   r$   r6   r   r   r   Ú<module>rG      sG   ðÛ ß #ß 8Õ 8à	×	Ò	˜8Ó	$€÷&ñ &ô Ð"4°cô ô2&Ð);õ &r   