a
    6Rhz                     @   s   d Z ddlZddlZddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ d	d
lmZ ddlmZ ddlmZ G dd deZdS )zD
Create a dist_info directory
As defined in the wheel specification
    N)contextmanager)Path)cast   )_normalization)rmdir   )egg_info)log)Commandc                   @   sd   e Zd ZdZdZg dZddgZddiZdd Zd	d
ddZ	e
eedddZd	d
ddZd	S )	dist_infoz
    This command is private and reserved for internal use of setuptools,
    users should rely on ``setuptools.build_meta`` APIs.
    z@DO NOT CALL DIRECTLY, INTERNAL ONLY: create .dist-info directory))zoutput-dir=ozYdirectory inside of which the .dist-info will becreated [default: top of the source tree])tag-datedz0Add date stamp (e.g. 20050528) to version number)z
tag-build=bz-Specify explicit tag to add to version number)no-dateDz"Don't include date stamp [default])keep-egg-infoNz,*TRANSITIONAL* will be removed in the futurer   r   r   c                 C   s(   d | _ d | _d | _d | _d | _d| _d S )NF)
output_dirnamedist_info_dirtag_date	tag_buildkeep_egg_info)self r   R/opt/python-3.9.24/usr/lib/python3.9/site-packages/setuptools/command/dist_info.pyinitialize_options,   s    zdist_info.initialize_optionsN)returnc                 C   s   | j }|jptj}t| jp|| _tt| d}t	| j|_
| jrN| j|_n|j| _| jrf| j|_n|j| _|  || _t| }t| }| d| | _tj| j| j d| _d S )Nr	   -z
.dist-info)distributionZsrc_rootoscurdirr   r   r   egg_info_clsreinitialize_commandstrZegg_baser   r   finalize_optionsr	   r   Z
safer_nameget_nameZsafer_best_effort_versionget_versionr   pathjoinr   )r   distZproject_dirr	   r   versionr   r   r   r&   4   s"    

zdist_info.finalize_options)dir_pathrequires_bkpc              
   c   sv   |rl| d}t |dd tj||ddd z"d V  W t |dd t|| qrt |dd t|| 0 nd V  d S )Nz.__bkp__T)ignore_errors)dirs_exist_oksymlinks)_rmshutilcopytreemove)r   r-   r.   Zbkp_namer   r   r   _maybe_bkp_dirN   s    
zdist_info._maybe_bkp_dirc                 C   s   | j jddd | j  | jj}tj|s6J dtdtj	| j
 d | d}| || j ||| j
 W d    n1 s0    Y  d S )NT)parentsexist_okz&.egg-info dir should have been createdz
creating ''bdist_wheel)r   mkdirr	   runr!   r)   isdirr
   infoabspathr   get_finalized_commandr6   r   Zegg2dist)r   egg_info_dirr:   r   r   r   r<   \   s    

zdist_info.run)__name__
__module____qualname____doc__descriptionuser_optionsboolean_optionsnegative_optr   r&   r   r%   boolr6   r<   r   r   r   r   r      s   r   )rE   r!   r3   
contextlibr   pathlibr   typingr    r   _shutilr   r2   r	   r#   	distutilsr
   distutils.corer   r   r   r   r   r   <module>   s   