B
    Y                 @   s   d Z ddlmZmZ ddlZyddlmZ W n  ek
rL   ddlmZ Y nX da	e
 add Zdd Zd	d
 Zdd Zdd Zdd ZyddlZW n  ek
r   dZed Y nX dd Zdd Zdd Zdd ZdS )z OS keychain/keyring abstraction.    )absolute_importprint_functionN)
quote_plusc               C   s   t d a d S )N   )_fallback_keyring r   r   @lib/python3.7/site-packages/anaconda_project/internal/keyring.pyenable_fallback_keyring   s    r	   c               C   s&   t dkstt d a t dkr"t ad S )Nr   r   )r   AssertionErrordict_fake_in_memory_keyringr   r   r   r   disable_fallback_keyring   s    r   c               C   s   t dkS )Nr   )r   r   r   r   r   _use_fallback_keyring%   s    r   c             C   s0   t  s,tdtjd td|  tjd t  d S )Nz0Unable to use system keyring to store passwords.)filez  (%s))r   printsysstderrr	   )Z	complaintr   r   r   %_onetime_keyring_complain_and_disable*   s    r   c               C   s   t  adad S )Nr   )r   r   r   r   r   r   r   reset_keyring_module4   s    r   c               C   s   t S )N)r   r   r   r   r   fallback_data;   s    r   zEModule 'keyring' not available, try installing the 'keyring' package.c             C   s,   | d k	st |d k	st dt| t|f S )Nz%s/%s)r
   r   )
env_prefixvariabler   r   r   _make_usernameF   s    r   c          
   C   s`   t | |}t sTytd|}|S  tk
rR } ztdt|  W d d }~X Y nX t|d S )NanacondazException getting a password: )	r   r   keyringZget_password	Exceptionr   strr   get)r   r   nameZgoter   r   r   r   M   s    
"r   c          
   C   sn   |d k	st t| |}t sbytd|| d S  tk
r` } ztdt|  W d d }~X Y nX |t|< d S )Nr   zException setting a password: )	r
   r   r   r   Zset_passwordr   r   r   r   )r   r   valuer   r   r   r   r   set\   s    
"r!   c          
   C   sf   t | |}t sTytd| d S  tk
rR } ztdt|  W d d }~X Y nX |tkrbt|= d S )Nr   zException deleting a password: )r   r   r   Zdelete_passwordr   r   r   r   )r   r   r   r   r   r   r   unsetm   s    
"r"   )__doc__Z
__future__r   r   r   Zurllib.parser   ImportErrorZurllibr   r   r   r	   r   r   r   r   r   r   r   r   r!   r"   r   r   r   r   <module>   s.   

