3
;p_                 @   s\   d dl mZ d dlZd dlZd dlZd dlmZ d dlm	Z	 ej
dZej
dZdd ZdS )	    )print_functionN)
WheelError)	WheelFilez6^(?P<namever>(?P<name>.+?)-(?P<ver>\d.*?))\.dist-info$s   Build: (\d\w*)$c                s8   fddt j D }t|dkr4tdj n|sFtdj |d }tj|jd}d}t jj	 |d	}t
|j}g }	xL|D ]D}
|
jd
r|	j|
jdd j  q|
jdr|
jdd j }qW |	stdj|W dQ R X |dk	r|n|}|dk	r|r|d| 7 }||kr|r4d| jdnd}t
|d:}|j }tj||d sf||7 }|j  |j| W dQ R X tdd |	D }tdd |	D }tdd |	D }dj	dj	|dj	|dj	|g}t jj	|dj||}t|d,}tdj|dd tjj  |j  W dQ R X td dS )aB  Repack a previously unpacked wheel directory into a new wheel file.

    The .dist-info/WHEEL file must contain one or more tags so that the target
    wheel file name can be determined.

    :param directory: The unpacked wheel directory
    :param dest_dir: Destination directory (defaults to the current directory)
    c                s0   g | ](}t jjt jj |rtj|r|qS  )ospathisdirjoinDIST_INFO_REmatch).0fn)	directoryr   1/tmp/pip-install-ofl94hr3/wheel/wheel/cli/pack.py
<listcomp>   s    zpack.<locals>.<listcomp>   z+Multiple .dist-info directories found in {}z%No .dist-info directories found in {}r   ZnameverNWHEELzTag:  zBuild: zCNo tags present in {}/WHEEL; cannot determine target wheel filename-zBuild: %s
ascii    zrb+c             S   s   h | ]}|j d d qS )r   r   )split)r   tagr   r   r   	<setcomp>C   s    zpack.<locals>.<setcomp>c             S   s   h | ]}|j d d qS )r   r   )r   )r   r   r   r   r   r   D   s    c             S   s   h | ]}|j d d qS )r      )r   )r   r   r   r   r   r   E   s    .z	{}-{}.whlwzRepacking wheel as {}... )endOK)r   listdirlenr   formatr
   r   groupr   r	   open
startswithappendr   rstripencodereadBUILD_NUM_REsubntruncatewritesortedr   printsysstdoutflushZwrite_files)r   dest_dirbuild_numberZdist_info_dirsZdist_info_dirZname_versionZexisting_build_numberZwheel_file_pathftagslinereplacementZwheel_file_contentZimplsZabivers	platformsZtagline
wheel_pathZwfr   )r   r   pack   sR    






"
r;   )
__future__r   os.pathr   rer0   Z	wheel.clir   Zwheel.wheelfiler   compiler
   r*   r;   r   r   r   r   <module>   s   

