U
    Ü¦—\]  ã                   @   s\   d dl Z d dlZddlmZ eZeejƒG dd„ dƒƒZG dd„ deƒZG dd	„ d	eƒZ	dS )
é    Né   )Úadd_metaclassc                   @   s,   e Zd ZdZejdd„ ƒZejdd„ ƒZdS )Ú
Credentialz)Abstract class to manage credentials
    c                 C   s   d S ©N© ©Úselfr   r   ú5/usr/lib/python3/dist-packages/keyring/credentials.pyÚusername   s    zCredential.usernamec                 C   s   d S r   r   r   r   r   r	   Úpassword   s    zCredential.passwordN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚabcÚabstractpropertyr
   r   r   r   r   r	   r   	   s
   
r   c                   @   s0   e Zd ZdZdd„ Zedd„ ƒZedd„ ƒZdS )	ÚSimpleCredentialz&Simple credentials implementation
    c                 C   s   || _ || _d S r   )Ú	_usernameÚ	_password)r   r
   r   r   r   r	   Ú__init__   s    zSimpleCredential.__init__c                 C   s   | j S r   )r   r   r   r   r	   r
      s    zSimpleCredential.usernamec                 C   s   | j S r   )r   r   r   r   r	   r   #   s    zSimpleCredential.passwordN)r   r   r   r   r   Úpropertyr
   r   r   r   r   r	   r      s   
r   c                   @   s8   e Zd ZdZdd„ Zdd„ Zedd„ ƒZedd	„ ƒZd
S )ÚEnvironCredentialzgSource credentials from environment variables.
       Actual sourcing is deferred until requested.
    c                 C   s   || _ || _d S r   )Úuser_env_varÚpwd_env_var)r   r   r   r   r   r	   r   -   s    zEnvironCredential.__init__c                 C   s    t j |¡}|std| ƒ‚|S )z/Helper to read an environment variable
        zMissing environment variable:%s)ÚosÚenvironÚgetÚ
ValueError)r   Zenv_varÚvaluer   r   r	   Ú_get_env1   s    zEnvironCredential._get_envc                 C   s   |   | j¡S r   )r   r   r   r   r   r	   r
   9   s    zEnvironCredential.usernamec                 C   s   |   | j¡S r   )r   r   r   r   r   r	   r   =   s    zEnvironCredential.passwordN)	r   r   r   r   r   r   r   r
   r   r   r   r   r	   r   (   s   
r   )
r   r   Z
py27compatr   ÚtypeZ__metaclass__ÚABCMetar   r   r   r   r   r   r	   Ú<module>   s   