B
    øoh\]  ã               @   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   ú2lib/python3.7/site-packages/keyring/credentials.pyÚusername   s    zCredential.usernamec             C   s   d S )Nr   )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 )N)Ú	_usernameÚ	_password)r   r   r	   r   r   r   Ú__init__   s    zSimpleCredential.__init__c             C   s   | j S )N)r   )r   r   r   r   r      s    zSimpleCredential.usernamec             C   s   | j S )N)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 )N)Ú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 )N)r   r   )r   r   r   r   r   9   s    zEnvironCredential.usernamec             C   s   |   | j¡S )N)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   