U
    b	                     @   s   d dl mZmZmZmZ d dlZd dlZd dlmZ d dl	m
Z
mZmZ d dlmZmZ ddlmZ dd	lmZ dd
lmZmZ eeZdd ZG dd dZdd Zdd Zdd Zdd Zedkree  dS )    )absolute_importdivisionprint_functionunicode_literalsN)	getLogger)isdirisfilejoin)S_IREADS_IWRITE   )rm_rf   )AppDirs)
quote_plusunquote_plusc                 C   s   t jdd| ddS )Nz([./])api([./]|$)z	\1conda\2r   )count)resub)url r   =lib/python3.8/site-packages/conda/gateways/anaconda_client.pyreplace_first_api_with_conda   s    r   c                   @   sD   e Zd Zdd Zedd Zedd Zedd Zed	d
 ZdS )
EnvAppDirsc                 C   s   || _ || _|| _d S )N)appname	appauthor	root_path)selfr   r   r   r   r   r   __init__   s    zEnvAppDirs.__init__c                 C   s   t | jdS Ndatar	   r   r   r   r   r   user_data_dir   s    zEnvAppDirs.user_data_dirc                 C   s   t | jdS r   r!   r"   r   r   r   site_data_dir"   s    zEnvAppDirs.site_data_dirc                 C   s   t | jdS )Ncacher!   r"   r   r   r   user_cache_dir&   s    zEnvAppDirs.user_cache_dirc                 C   s   t | jdS )Nlogr!   r"   r   r   r   user_log_dir*   s    zEnvAppDirs.user_log_dirN)	__name__
__module____qualname__r   propertyr#   r$   r&   r(   r   r   r   r   r      s   


r   c                   C   s2   dt jkr"tddt jtd jS tddjS d S )NZBINSTAR_CONFIG_DIRZbinstarZContinuumIO)osenvironr   strr#   r   r   r   r   r   _get_binstar_token_directory/   s
    
r0   c               
   C   s   t  } t }t|s| S t|D ]^}|jdd  dkr:q"tddt|j}t	|j
}| }W 5 Q R X | | |< | t|< q"| S )Niz.tokenz\.token$ )dictr0   r   r-   scandirnamer   r   r   openpathreadr   )tokens	token_dirZ	tkn_entryr   ftokenr   r   r   read_binstar_tokens7   s    r<   c              	   C   sp   t  }t|st| t|dt|  }t|r<t| t|d}|	| W 5 Q R X t
|ttB  d S )N%s.tokenw)r0   r   r-   makedirsr	   r   r   unlinkr5   writechmodr   r
   )r   r;   r9   	tokenfilefdr   r   r   set_binstar_tokenG   s    

rE   c                 C   s$   t  }t|dt|  }t| d S )Nr=   )r0   r	   r   r   )r   r9   rC   r   r   r   remove_binstar_tokenU   s    rF   __main__) Z
__future__r   r   r   r   r-   r   Zloggingr   os.pathr   r   r	   statr
   r   Zdisk.deleter   Z_vendor.appdirsr   Z
common.urlr   r   r)   r'   r   r   r0   r<   rE   rF   printr   r   r   r   <module>   s"   