o
    ÞñÐa9  ã                   @   sH   d dl Z d dlZG dd„ dejd�ZG dd„ deƒZG dd„ deƒZdS )	é    Nc                   @   s,   e Zd ZdZejdd„ ƒZejdd„ ƒZdS )Ú
Credentialz$Abstract class to manage credentialsc                 C   ó   d S ©N© ©Úselfr   r   ú5/usr/lib/python3/dist-packages/keyring/credentials.pyÚusername   ó   zCredential.usernamec                 C   r   r   r   r   r   r   r   Úpassword   r
   zCredential.passwordN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚabcÚabstractpropertyr	   r   r   r   r   r   r      s    
r   )Ú	metaclassc                   @   s0   e Zd ZdZdd„ Zedd„ ƒZedd„ ƒZdS )	ÚSimpleCredentialz!Simple credentials implementationc                 C   ó   || _ || _d S r   )Ú	_usernameÚ	_password)r   r	   r   r   r   r   Ú__init__   ó   
zSimpleCredential.__init__c                 C   ó   | j S r   )r   r   r   r   r   r	      ó   zSimpleCredential.usernamec                 C   r   r   )r   r   r   r   r   r      r   zSimpleCredential.passwordN)r   r   r   r   r   Úpropertyr	   r   r   r   r   r   r      s    
r   c                   @   sJ   e Zd ZdZdd„ Zdedefdd„Zdd	„ Ze	d
d„ ƒZ
e	dd„ ƒZdS )ÚEnvironCredentialaA  
    Source credentials from environment variables.

    Actual sourcing is deferred until requested.

    Supports comparison by equality.

    >>> e1 = EnvironCredential('a', 'b')
    >>> e2 = EnvironCredential('a', 'b')
    >>> e3 = EnvironCredential('a', 'c')
    >>> e1 == e2
    True
    >>> e2 == e3
    False
    c                 C   r   r   )Úuser_env_varÚpwd_env_var)r   r   r   r   r   r   r   2   r   zEnvironCredential.__init__ÚotherÚreturnc                 C   s   t | ƒt |ƒkS r   )Úvars)r   r   r   r   r   Ú__eq__6   s   zEnvironCredential.__eq__c                 C   s    t j |¡}|std| ƒ‚|S )z&Helper to read an environment variablezMissing environment variable:%s)ÚosÚenvironÚgetÚ
ValueError)r   Úenv_varÚvaluer   r   r   Ú_get_env9   s   zEnvironCredential._get_envc                 C   ó   |   | j¡S r   )r)   r   r   r   r   r   r	   @   ó   zEnvironCredential.usernamec                 C   r*   r   )r)   r   r   r   r   r   r   D   r+   zEnvironCredential.passwordN)r   r   r   r   r   ÚobjectÚboolr"   r)   r   r	   r   r   r   r   r   r   !   s    
r   )r#   r   ÚABCMetar   r   r   r   r   r   r   Ú<module>   s
    