U
    -c
                     @   sl   d Z ddlZddlZddlZddlmZ ddlmZ ddlm	Z	 G dd deZ
d	d
 Zdd Zdd ZdS )z
distutils.command.install_egg_info

Implements the Distutils 'install_egg_info' command, for installing
a package's PKG-INFO metadata.
    N   )Command)dir_util)logc                   @   sF   e Zd ZdZdZdgZdd Zedd Zdd	 Z	d
d Z
dd ZdS )install_egg_infoz)Install an .egg-info file for the packagez8Install package's PKG-INFO metadata as an .egg-info file)zinstall-dir=dzdirectory to install toc                 C   s
   d | _ d S N)install_dirself r   R/tmp/pip-unpacked-wheel-izj_87as/setuptools/_distutils/command/install_egg_info.pyinitialize_options   s    z#install_egg_info.initialize_optionsc                 C   s6   dt t| j t t| j ftjdd  S )z_
        Allow basename to be overridden by child class.
        Ref pypa/distutils#2.
        z%s-%s-py%d.%d.egg-infoNr   )to_filename	safe_namedistributionget_namesafe_versionget_versionsysversion_infor
   r   r   r   basename   s    zinstall_egg_info.basenamec                 C   s.   |  dd tj| j| j| _| jg| _d S )Ninstall_lib)r	   r	   )set_undefined_optionsospathjoinr	   r   targetoutputsr
   r   r   r   finalize_options(   s    z!install_egg_info.finalize_optionsc              	   C   s   | j }tj|r0tj|s0tj|| jd nNtj|rV| 	tj
| j fd|  n(tj| js~| 	tj| jfd| j  td| | jst|ddd}| jj| W 5 Q R X d S )N)dry_runz	Removing z	Creating z
Writing %swzUTF-8)encoding)r   r   r   isdirislinkr   remove_treer    existsexecuteunlinkr	   makedirsr   infoopenr   metadatawrite_pkg_file)r   r   fr   r   r   run-   s      zinstall_egg_info.runc                 C   s   | j S r   )r   r
   r   r   r   get_outputs<   s    zinstall_egg_info.get_outputsN)__name__
__module____qualname____doc__descriptionuser_optionsr   propertyr   r   r/   r0   r   r   r   r   r      s   
r   c                 C   s   t dd| S )zConvert an arbitrary string to a standard distribution name

    Any runs of non-alphanumeric/. characters are replaced with a single '-'.
    [^A-Za-z0-9.]+-)resubnamer   r   r   r   E   s    r   c                 C   s   |  dd} tdd| S )zConvert an arbitrary string to a standard version string

    Spaces become dots, and all other non-alphanumeric characters become
    dashes, with runs of multiple dashes condensed to a single dash.
     .r8   r9   )replacer:   r;   )versionr   r   r   r   M   s    r   c                 C   s   |  ddS )z|Convert a project or version name to its filename-escaped form

    Any '-' characters are currently replaced with '_'.
    r9   _)r@   r<   r   r   r   r   W   s    r   )r4   r   r   r:   cmdr    r   _logr   r   r   r   r   r   r   r   r   <module>   s   4
