U
    
Hai  ã                   @   sZ   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZejdd„ ƒZdd„ Z	dd„ Z
dS )é    Nc               	   c   s$   t  ¡ } z
| V  W 5 t | ¡ X dS )z2Create a temporary directory in a context manager.N)ÚtempfileÚmkdtempÚshutilÚrmtree)Útd© r   ú?/tmp/pip-unpacked-wheel-tx790h60/pip/_vendor/pep517/dirtools.pyÚtempdir
   s    
r	   c               
   O   sD   zt j| |ŽW S  tk
r> } z|jtjkr.‚ W 5 d}~X Y nX dS )zWLike `mkdir`, but does not raise an exception if the
    directory already exists.
    N)ÚosÚmkdirÚOSErrorÚerrnoÚEEXIST)ÚargsÚkwargsÚexcr   r   r   Úmkdir_p   s
    r   c                 C   s–   t  ¡ }t |d¡}t | ¡D ]r\} }}|D ]0}tj | |¡}tj || ¡}| 	|d d¡ q,|D ],}tj | |¡}tj || ¡}| 
||¡ qbq|S )z0Construct an in-memory zip file for a directory.Úwú/Ú )ÚioÚBytesIOÚzipfileÚZipFiler
   ÚwalkÚpathÚjoinÚrelpathÚwritestrÚwrite)ÚrootÚbufferÚzip_fileÚdirsÚfilesr   Zfs_pathÚrel_pathr   r   r   Údir_to_zipfile   s    r&   )r
   r   Ú
contextlibr   r   r   r   Úcontextmanagerr	   r   r&   r   r   r   r   Ú<module>   s   
	