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
    