<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
vh7                 @   s~   d dl mZ d dljjZd dl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ZeZdddZG d	d
 d
eejZdS )    )logN)six   )sdist_add_defaults c             c   s4   x.t jdD ] }x|j | D ]
}|V  qW qW dS )z%Find all files under revision controlzsetuptools.file_findersN)pkg_resourcesZiter_entry_pointsload)dirnameZepitem r   /usr/lib/python3.6/sdist.pywalk_revctrl   s    r   c                   s   e Zd ZdZd0d2d3gZi ZddddgZedd eD Zdd Z	dd Z
dd Zdd Zeejdd Zdd Zejd4k pd5ej  kod6k n  pd7ej  kod8k n  ZereZd$d% Z fd&d'Zd(d) Zd*d+ Zd,d- Zd.d/ Z  ZS )9sdistz=Smart sdist that finds anything supported by revision controlformats=N6formats for source distribution (comma-separated list)	keep-tempkz1keep the distribution tree around after creating zarchive file(s)	dist-dir=dFdirectory to put the source distribution archive(s) in [default: dist]r   z.rstz.txtz.mdc             c   s   | ]}d j |V  qdS )z	README{0}N)format).0Zextr   r   r   	<genexpr>)   s    zsdist.<genexpr>c             C   s   | j d | jd}|j| _| jjtjj|jd | j  x| j	 D ]}| j | qFW | j
  t| jdg }x*| jD ] }dd|f}||krv|j| qvW d S )Negg_infozSOURCES.txt
dist_filesr   r   )Zrun_commandget_finalized_commandfilelistappendospathjoinr   check_readmeZget_sub_commandsmake_distributiongetattrdistributionZarchive_files)selfZei_cmdZcmd_namer   filedatar   r   r   run+   s    


z	sdist.runc             C   s   t jj|  | j  d S )N)origr   initialize_options_default_to_gztar)r%   r   r   r   r*   >   s    zsdist.initialize_optionsc             C   s   t jdkrd S dg| _d S )N      r   betar   Zgztar)r,   r-   r   r.   r   )sysversion_infoZformats)r%   r   r   r   r+   C   s    
zsdist._default_to_gztarc          	   C   s$   | j   tjj|  W dQ R X dS )z%
        Workaround for #516
        N)_remove_os_linkr)   r   r"   )r%   r   r   r   r"   I   s    
zsdist.make_distributionc              c   s^   G dd d} t td| }yt`W n tk
r6   Y nX z
dV  W d|| k	rXttd| X dS )zG
        In a context, remove and restore os.link if it exists
        c               @   s   e Zd ZdS )z&sdist._remove_os_link.<locals>.NoValueN)__name__
__module____qualname__r   r   r   r   NoValueW   s   r5   linkN)r#   r   r6   	Exceptionsetattr)r5   Zorig_valr   r   r   r1   P   s    
zsdist._remove_os_linkc             C   sL   yt jj|  W n6 tk
rF   tj \}}}|jjjd j	   Y nX d S )Ntemplate)
r)   r   read_templater7   r/   exc_infotb_nexttb_framef_localsclose)r%   _tbr   r   r   Z__read_template_hacke   s    zsdist.__read_template_hack      r,   r   r      c                sb   | j j r^| jd}| jj|j  | j js^x0|jD ]&\} }}| jj fdd|D  q4W dS )zgetting python filesbuild_pyc                s   g | ]}t jj |qS r   )r   r   r    )r   filename)src_dirr   r   
<listcomp>   s   z.sdist._add_defaults_python.<locals>.<listcomp>N)r$   Zhas_pure_modulesr   r   extendZget_source_filesZinclude_package_dataZ
data_files)r%   rE   r@   	filenamesr   )rG   r   _add_defaults_python|   s    

zsdist._add_defaults_pythonc                sD   y t jrtj|  n
t j  W n tk
r>   tjd Y nX d S )Nz&data_files contains unexpected objects)r   ZPY2r   _add_defaults_data_filessuper	TypeErrorr   warn)r%   )	__class__r   r   rL      s    zsdist._add_defaults_data_filesc             C   s:   x4| j D ]}tjj|rd S qW | jddj| j   d S )Nz,standard file not found: should have one of z, )READMESr   r   existsrO   r    )r%   fr   r   r   r!      s    zsdist.check_readmec             C   s^   t jj| || tjj|d}ttdrJtjj|rJtj| | j	d| | j
dj| d S )Nz	setup.cfgr6   r   )r)   r   make_release_treer   r   r    hasattrrR   unlinkZ	copy_filer   Zsave_version_info)r%   Zbase_dirfilesdestr   r   r   rT      s    
zsdist.make_release_treec          	   C   s@   t jj| jsdS tj| jd}|j }W d Q R X |dj kS )NFrbz+# file GENERATED by distutils, do NOT edit
)r   r   isfilemanifestioopenreadlineencode)r%   fpZ
first_liner   r   r   _manifest_is_not_generated   s    z sdist._manifest_is_not_generatedc             C   s   t jd| j t| jd}xl|D ]d}tjr^y|jd}W n$ tk
r\   t jd|  w Y nX |j	 }|j
ds | rxq | jj| q W |j  dS )zRead the manifest file (named by 'self.manifest') and use it to
        fill in 'self.filelist', the list of files to include in the source
        distribution.
        zreading manifest file '%s'rY   zUTF-8z"%r not UTF-8 decodable -- skipping#N)r   infor[   r]   r   ZPY3decodeUnicodeDecodeErrorrO   strip
startswithr   r   r?   )r%   r[   liner   r   r   read_manifest   s    
zsdist.read_manifest)r   Nr   @keep the distribution tree around after creating archive file(s))r   r   rj   )r   r   r   )rB   rC   rB   )r,   r   )r,   r   rD   )r,   rB   )r,   rB   r   )r2   r3   r4   __doc__Zuser_optionsZnegative_optZREADME_EXTENSIONStuplerQ   r(   r*   r+   r"   staticmethod
contextlibcontextmanagerr1   Z_sdist__read_template_hackr/   r0   Zhas_leaky_handler:   rK   rL   r!   rT   ra   ri   __classcell__r   r   )rP   r   r      s:       
	

r   )r   )Z	distutilsr   Zdistutils.command.sdistZcommandr   r)   r   r/   r\   rn   Zsetuptools.externr   Z
py36compatr   r   listZ_default_revctrlr   r   r   r   r   <module>   s   
