
    ZQd                     l    d Z ddlmZ ddlmZmZ ddlZddlZddlZ G d de          Z	d Z
d Zd	 ZdS )
zdistutils.command.install_egg_info

Implements the Distutils 'install_egg_info' command, for installing
a package's PKG-INFO metadata.    )Command)logdir_utilNc                   6    e Zd ZdZdZddgZd Zd Zd Z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 to)zinstall-layoutNzcustom installation layoutc                 0    d | _         d | _        d | _        d S N)install_dirinstall_layoutprefix_optionselfs    9/usr/lib/python3.11/distutils/command/install_egg_info.pyinitialize_optionsz#install_egg_info.initialize_options   s     "!    c                    |                      dd           |                      dd           |                      dd           | j        rH| j                                        dvrt          d          | j                                        dk    }n| j        rd	}nd
}|rkt          t          | j                                                            dt          t          | j        
                                                    d}n~dt          t          | j                                                            t          t          | j        
                                                    gt          j        d d         R z  }t          j                            | j        |          | _        | j        g| _        d S )Ninstall_lib)r   r   install)r   r   )r   r   )debunixz"unknown value for --install-layoutr   FT-z	.egg-infoz%s-%s-py%d.%d.egg-info   )set_undefined_optionsr   lowerDistutilsOptionErrorr   to_filename	safe_namedistributionget_namesafe_versionget_versionsysversion_infoospathjoinr   targetoutputs)r   no_pyverbasenames      r   finalize_optionsz!install_egg_info.finalize_options   s   ""=1NOOO""9-PQQQ""9-NOOO 	&,,../AA*8: : :+1133u<HH 	HHH 
	Id&7&@&@&B&BCCDDDDL):)F)F)H)HIIJJJJHH
 0Id&7&@&@&B&BCCDDL):)F)F)H)HIIJJ3 !"1"%3 3 H
 gll4#3X>>}r   c                    | j         }t          j                            |          r;t          j                            |          st          j        || j                   nt          j                            |          r+| 	                    t          j
        | j         fd|z              nSt          j                            | j                  s/| 	                    t          j        | j        fd| j        z              t          j        d|           | j        sLt          |dd          5 }| j        j                            |           d d d            d S # 1 swxY w Y   d S 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(   fs      r   runzinstall_egg_info.run4   s   7==   	7)?)? 	7 >>>>>W^^F## 	7LLDK>+f2DEEEEt/00 	7LLt'7&9$T%557 7 7v&&&| 	=fcG444 =!*99!<<<= = = = = = = = = = = = = = = = = =	= 	=s   - EE!Ec                     | j         S r
   )r)   r   s    r   get_outputszinstall_egg_info.get_outputsB   s
    |r   N)
__name__
__module____qualname____doc__descriptionuser_optionsr   r,   r=   r?    r   r   r   r      sh        33LK8>L
" " "
% % %6= = =    r   r   c                 .    t          j        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.]+r   )resubnames    r   r   r   J   s    
 6"C...r   c                 Z    |                      dd          } t          j        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.
     .rH   r   )replacerI   rJ   )versions    r   r!   r!   R   s,     ooc#&&G6"C111r   c                 .    |                      dd          S )z|Convert a project or version name to its filename-escaped form

    Any '-' characters are currently replaced with '_'.
    r   _)rP   rK   s    r   r   r   \   s    
 <<C   r   )rC   distutils.cmdr   	distutilsr   r   r%   r#   rI   r   r   r!   r   rF   r   r   <module>rV      s   " " " ! ! ! ! ! # # # # # # # #            8 8 8 8 8w 8 8 8~/ / /2 2 2! ! ! ! !r   