o
    ca$                     @   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
dZe
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                    st   fddt  D }t|dkrtd |s"td |d }t|d}d}t j	 |d	}t
|8}g }	|D ]"}
|
d
rU|	|
dd   qA|
drc|
dd  }qA|	smtd|W d   n1 sww   Y  |dur|n|}|dur|r|d| 7 }||kr|rd| dnd}t
|d(}| }t||\}}|s||7 }|d |  || W d   n1 sw   Y  tdd |	D }tdd |	D }tdd |	D }d	d	|d	|d	|g}t j	|d||}t|d}td|dd tj  |  W d   n	1 s/w   Y  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t j |rt|r|qS  )ospathisdirjoinDIST_INFO_REmatch).0fn	directoryr   0/usr/lib/python3/dist-packages/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   nameverNWHEELzTag:  zBuild: zCNo tags present in {}/WHEEL; cannot determine target wheel filename-zBuild: %s
ascii    zrb+c                 S      h | ]	}| d d qS )r   r   splitr   tagr   r   r   	<setcomp>F       zpack.<locals>.<setcomp>c                 S   r   )r   r   r   r   r   r   r   r   G   r   c                 S   r   )r      r   r   r   r   r   r   H   r   .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seektruncatewritesortedr   printsysstdoutflushwrite_files)r   dest_dirbuild_numberdist_info_dirsdist_info_dirname_versionexisting_build_numberwheel_file_pathftagslinereplacementwheel_file_contentnum_replacedimplsabivers	platformstagline
wheel_pathwfr   r   r   pack   sf   




"
rN   )
__future__r   os.pathr   rer7   	wheel.clir   wheel.wheelfiler   compiler
   r0   rN   r   r   r   r   <module>   s    

