U
    _d                     @  s   d Z ddlmZ ddlZddlZddlZddlmZ G dd deZdd Z	d	d
 Z
dd Zdd Zdd ZdddddZdZdd Zdd ZdS )z
Wheel command-line utility.
    )annotationsN)ArgumentTypeErrorc                   @  s   e Zd ZdS )
WheelErrorN)__name__
__module____qualname__ r   r   5/tmp/pip-install-m_ue_qtn/wheel/wheel/cli/__init__.pyr      s   r   c                 C  s   ddl m } || j| j d S )N   )unpack)r   	wheelfiledest)argsr   r   r   r	   unpack_f   s    r   c                 C  s"   ddl m } || j| j| j d S )Nr
   )pack)r   	directorydest_dirbuild_number)r   r   r   r   r	   pack_f   s    r   c                 C  s"   ddl m } || j| j| j d S )Nr
   )convert)r   filesr   verbose)r   r   r   r   r	   	convert_f   s    r   c                   s8   ddl m   fdd jD }|D ]}t| q&d S )Nr
   )tagsc                 3  s*   | ]"}| j  j j j jV  qd S N)
python_tagZabi_tagZplatform_tagbuildremove).0wheelr   r   r   r	   	<genexpr>&   s   	ztags_f.<locals>.<genexpr>)r   r   print)r   namesnamer   r    r	   tags_f#   s    	r%   c                 C  s   ddl m} td|  d S )N   )__version__zwheel %s) r'   r"   )r   r'   r   r   r	   	version_f6   s    r)   str)	build_tagreturnc                 C  s*   | d   stdnd| kr&td| S )Nr   z!build tag must begin with a digit-z$invalid character ('-') in build tag)isdigitr   )r+   r   r   r	   parse_build_tag<   s
    
r/   ay  Make a new wheel with given tags. Any tags unspecified will remain the same.
Starting the tags with a "+" will append to the existing tags. Starting with a
"-" will remove a tag (use --option=-TAG syntax). Multiple tags can be
separated by ".". The original file will remain unless --remove is given.  The
output filename(s) will be displayed on stdout for further processing.
c                    s  t    jdd} | jddd}|jddddd	 |jd
dd |jtd | jddd}|jddd |jddtjj	dd |jddd |jt
d | jddd}|jdddd |jddtjj	dd |jdddd  |jtd | jd!d"td#}|jd$dd%d |jd&dd'd( |jd)d*d+d, |jd-d*d.d, |jd/d*d0d, |jd1td2d3d4 |jtd | jd5d6d}|jtd | jd7d8d}|j fd9d:d  S );Ncommands)helpr   zUnpack wheelz--destz-dzDestination directory.)r1   defaultr   z
Wheel file)funcr   zRepack wheelr   z$Root directory of the unpacked wheelz
--dest-dirz2Directory to store the wheel (default %(default)s))r3   r1   z--build-numberz"Build tag to use in the wheel namer   zConvert egg or wininst to wheelr   *zFiles to convert)nargsr1   z/Directory to store wheels (default %(default)s)z	--verbosez-v
store_true)actionr   z"Add or replace the tags on a wheel)r1   descriptionr   zExisting wheel(s) to retagz--removez8Remove the original files, keeping only the renamed ones)r8   r1   z--python-tagZTAGzSpecify an interpreter tag(s))metavarr1   z	--abi-tagzSpecify an ABI tag(s)z--platform-tagzSpecify a platform tag(s)z--buildBUILDzSpecify a build tag)typer:   r1   versionzPrint version and exitr1   zShow this helpc                   s      S r   )
print_help)r   pr   r	   <lambda>       zparser.<locals>.<lambda>)argparseArgumentParseradd_subparsers
add_parseradd_argumentset_defaultsr   ospathcurdirr   r   	TAGS_HELPr/   r%   r)   )sZunpack_parserZrepack_parserZconvert_parserZtags_parserZversion_parserZhelp_parserr   r?   r	   parserN   s                 rN   c               
   C  sh   t  } |  }t|ds"|   nBz|| W dS  tk
rb } zt|tjd W 5 d }~X Y nX dS )Nr4   r   )filer
   )	rN   
parse_argshasattrr>   r4   r   r"   sysstderr)r@   r   er   r   r	   main   s    


 rU   )__doc__
__future__r   rC   rI   rR   r   	Exceptionr   r   r   r   r%   r)   r/   rL   rN   rU   r   r   r   r	   <module>   s   		A