
    h$                         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    s/var/www/fastuser/data/www/generator.snapmosaic.io/flask_app/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uSz5c?'B!C I&U5:uS#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    
'# '# ' 
&U5:uS#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	$& & "4c 2&); &r   