
    ph$                         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/home/james-whalen/.local/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uSz5c?'B!C I&U5:uS#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)"UsernamePasswordCredentialProvider1   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    
'# '# ' 
&U5:uS#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	$& & "4c 2&); &r   