o
    Wi                     @  s   d Z ddlmZ ddlZddlZddlZddl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 dd
lmZ erJddlmZ ddlmZ eeZdddZdddZdddZdZdS ) z&Application data stored by virtualenv.    )annotationsN)TYPE_CHECKINGAny)user_cache_diruser_data_dir   )AppDataDisabled)ReadOnlyAppData)AppDataDiskFolder)TempAppData)Mapping)AppDataenvMapping[str, str]returnstrc                 C  s   d}|| v r
| | S t  S )NVIRTUALENV_OVERRIDE_APP_DATA)_cache_dir_with_migration)r   key r   P/home/ubuntu/.local/lib/python3.10/site-packages/virtualenv/app_data/__init__.py_default_app_data_dir   s   r   c               
   C  s   t ddd} tddd}| |kr| S tj|rKtj| sKtd||  z	t||  W | S  t	yJ } zt
d|| | |W  Y d }~S d }~ww | S )N
virtualenvpypa)appname	appauthorz migrating app data from %s to %sz@could not migrate app data from %s to %s: %r, using old location)r   r   ospathisdirLOGGERinfoshutilmoveOSErrorwarning)new_dirold_dir	exceptionr   r   r   r       s"   r   folder
str | Nonekwargsr   r   c              
   K  s   | d}| d}|rd}t|| d u rt|} tj| } |r&t| S ztj| dd t	d|  W n t
yN } ztd| | W Y d }~nd }~ww t| tjrZt| S t	d|  t S )	N	read_onlyr   zunexpected keywords: {}T)exist_okzcreated app data folder %sz-could not create app data folder %s due to %rz&app data folder %s has no write access)pop	TypeErrorr   r   r   abspathr	   makedirsr   debugr#   r    accessW_OKr
   r   )r(   r*   is_read_onlyr   msgr'   r   r   r   make_app_data1   s*   

r6   )r   r
   r	   r   r6   )r   r   r   r   )r   r   )r(   r)   r*   r   r   r   )__doc__
__future__r   loggingr   r!   typingr   r   platformdirsr   r   nar   r+   r	   via_disk_folderr
   via_tempdirr   collections.abcr   baser   	getLogger__name__r   r   r   r6   __all__r   r   r   r   <module>   s&    



