o
    UhI                     @  s   d dl mZ d dlZd dlZd dlZd dlZd dlmZ ee	Z
dd Zdd Zdd	 Zd
d Zdd Zdd ZG dd dZg dZdS )    )annotationsN)S_IWUSRc                 C  s.   |   stdt|  tt|  d S d S )Nzcreate folder %s)existsLOGGERdebugstrosmakedirs)path r   n/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/virtualenv/util/path/_sync.py
ensure_dir   s   r   c                 C  sf   | |krd|  }t || sd S | r'| s'td| t| d S td| |  d S )Nz#source and destination is the same zremove directory %szremove file %s)
ValueErrorr   is_dir
is_symlinkr   r   safe_deleteunlink)srcdestmsgr   r   r   ensure_safe_to_do   s   
r   c                 C  s2   t | | tdt| | |j| |  d d S )Nz
symlink %s)target_is_directory)r   r   r   _Debug
symlink_tor   r   r   r   r   r   symlink    s   
r   c                 C  sH   t | | |  }|rtntj}tdt| | |t| t| d S )Nzcopy %s)	r   r   copytreeshutilcopyr   r   r   r   )r   r   r   methodr   r   r   r   &   s
   
r   c           	      C  sz   t | D ]5\}}}t j|t j|| }t j|s!t | |D ]}t j||}t j||}t|| q#qd S N)	r   walkr
   joinrelpathisdirr	   r   r   )	r   r   root_filesdest_dirnamesrc_fdest_fr   r   r   r   .   s   
r   c                 C  s<   dd }t jdkrdnd|i}tjt| fddi| d S )Nc                 S  s(   t |t jst |t | | d S  r    )r   accessW_OKchmodr   )funcr
   exc_infor   r   r   onerror:   s   zsafe_delete.<locals>.onerror)      onexcr1   ignore_errorsT)sysversion_infor   rmtreer   )r   r1   kwargsr   r   r   r   9   s   r   c                   @  s    e Zd Zd	ddZd
ddZdS )r   returnNonec                 C  s   || _ || _d S r    r   )selfr   r   r   r   r   __init__F   s   
z_Debug.__init__r   c                 C  s$   | j  rdnd | j d| jS )Nz
directory  z to )r   r   r   )r<   r   r   r   __str__J   s   $z_Debug.__str__N)r:   r;   )r:   r   )__name__
__module____qualname__r=   r?   r   r   r   r   r   E   s    
r   )r   r   r   r   r   r   )
__future__r   loggingr   r   r6   statr   	getLoggerr@   r   r   r   r   r   r   r   r   __all__r   r   r   r   <module>   s    
	