a
    Ç&(ai  ã                   @   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 t | ¡ nt | ¡ 0 dS )z2Create a temporary directory in a context manager.N)ÚtempfileÚmkdtempÚshutilÚrmtree)Útd© r   ús/private/var/folders/m4/wm8f9dms7t78045sws6ggdl80000gn/T/pip-unpacked-wheel-vn48x2xj/pip/_vendor/pep517/dirtools.pyÚtempdir
   s    r	   c               
   O   sJ   zt j| i |¤ŽW S  tyD } z|jtjkr0‚ W Y d}~n
d}~0 0 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   
	