
    f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dS )
    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dS )CredentialProviderz
    Credentials Provider.
    returnc                      t          d          )Nz#get_credentials must be implemented)NotImplementedErrorselfs    a/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/redis/credentials.pyget_credentialsz"CredentialProvider.get_credentials   s    !"GHHH    c                 b   K   t                               d           |                                 S )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   s5      9	
 	
 	
 ##%%%r   N)	__name__
__module____qualname____doc__r	   r   strr   r    r   r   r   r      s         IuSz5c?'B!C I I I I&U5:uS#X3N-O & & & & & &r   r   c                       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dS )StreamingCredentialProviderzI
    Credential provider that streams credentials in the background.
    callbackNc                     dS )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                     d S Nr   r"   s     r   on_errorz$StreamingCredentialProvider.on_error(       r   r   c                     d S 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      s          # 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
dS )
"UsernamePasswordCredentialProviderzg
    Simple implementation of CredentialProvider that just wraps static
    username and password.
    Nusernamepasswordc                 *    |pd| _         |pd| _        d S )N r.   r/   )r   r.   r/   s      r   __init__z+UsernamePasswordCredentialProvider.__init__7   s     B Br   c                 <    | j         r| j         | j        fS | j        fS r%   r2   r   s    r   r   z2UsernamePasswordCredentialProvider.get_credentials;   s&    = 	0=$-//r   r   c                 .   K   |                                  S r%   )r   r   s    r   r   z8UsernamePasswordCredentialProvider.get_credentials_async@   s      ##%%%r   )NN)r   r   r   r   r   r   r3   r   r	   r   r   r   r   r   r-   r-   1   s         
' '# '# ' ' ' '     
&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:      s     # # # # # # # # 8 8 8 8 8 8 8 8 8 8 8 8 8 8		8	$	$& & & & & & & &     "4c   2& & & & &); & & & & &r   