<!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>
U
    âQabÜ  ã                   @   s„   d dl mZ d dlm  m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   s,   t  d¡D ]}| ¡ | ƒD ]
}|V  qq
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.8/site-packages/setuptools/command/sdist.pyÚwalk_revctrl   s    r   c                       sü   e Zd ZdZdddg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dk p®dej  kodk n  p®dej  koªdk n  Zer¸eZdd„ Z‡ fdd„Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Z‡  ZS )*Úsdistz=Smart sdist that finds anything supported by revision control)zformats=Nz6formats for source distribution (comma-separated list))z	keep-tempÚkz@keep the distribution tree around after creating archive file(s))z	dist-dir=ÚdzFdirectory to put the source distribution archive(s) in [default: dist]r   z.rstz.txtz.mdc                 c   s   | ]}d   |¡V  qdS )z	README{0}N)Úformat)Ú.0Zextr   r   r   Ú	<genexpr>)   s     zsdist.<genexpr>c                 C   s–   |   d¡ |  d¡}|j| _| j tj |jd¡¡ |  ¡  |  	¡ D ]}|   |¡ qD|  
¡  t| jdg ƒ}| jD ] }dd|f}||krp| |¡ qpd 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 | ¡ |  ¡  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   Zbetar   Zgztar)ÚsysÚversion_infoZformatsr'   r   r   r   r&   C   s    
zsdist._default_to_gztarc              	   C   s$   |   ¡  tj | ¡ W 5 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| ƒ}zt`W n tk
r6   Y nX z
dV  W 5 || 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   r0   ÚlinkN)r   r   r1   Ú	ExceptionÚsetattr)r0   Zorig_valr   r   r   r,   P   s    
zsdist._remove_os_linkc                 C   sL   zt j | ¡ W n6 tk
rF   t ¡ \}}}|jjjd  	¡  ‚ Y nX d S )NÚtemplate)
r$   r   Úread_templater2   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   )r(   r   é   )r(   r=   )r(   r=   r   c                    s^   | j  ¡ rZ|  d¡}| j | ¡ ¡ | j jsZ|jD ]&\}‰ }}| j ‡ fdd„|D ƒ¡ q2dS )zgetting python filesÚbuild_pyc                    s   g | ]}t j ˆ |¡‘qS r   )r   r   r   )r   Úfilename©Z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    r@   r;   Ú	filenamesr   rB   r   Ú_add_defaults_python|   s    

ÿzsdist._add_defaults_pythonc                    sD   z t jrt | ¡ n
tƒ  ¡  W n tk
r>   t d¡ Y nX d S )Nz&data_files contains unexpected objects)r   ZPY2r   Ú_add_defaults_data_filesÚsuperÚ	TypeErrorr   Úwarnr'   ©Ú	__class__r   r   rG   Š   s    zsdist._add_defaults_data_filesc                 C   s8   | j D ]}tj |¡r d S q|  dd | j ¡ ¡ d S )Nz,standard file not found: should have one of z, )ÚREADMESr   r   ÚexistsrJ   r   )r    Úfr   r   r   r   “   s    

ÿÿzsdist.check_readmec                 C   s^   t j | ||¡ tj |d¡}ttdƒrJtj |¡rJt |¡ |  	d|¡ |  
d¡ |¡ d S )Nz	setup.cfgr1   r   )r$   r   Úmake_release_treer   r   r   ÚhasattrrN   ÚunlinkZ	copy_filer   Zsave_version_info)r    Zbase_dirÚfilesÚdestr   r   r   rP      s    
zsdist.make_release_treec              	   C   s@   t j | j¡sdS t | jd¡}| ¡ }W 5 Q R X |d ¡ 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  d| j¡ t| jdƒ}|D ]d}tjr^z| d¡}W n& tk
r\   t  d| ¡ Y qY nX | 	¡ }| 
d¡s|svq| j |¡ q| ¡  dS )zªRead 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'rU   zUTF-8z"%r not UTF-8 decodable -- skippingú#N)r   ÚinforW   rY   r   ZPY3ÚdecodeÚUnicodeDecodeErrorrJ   ÚstripÚ
startswithr   r   r:   )r    rW   Úliner   r   r   Úread_manifest´   s    
zsdist.read_manifestc                 C   s^   | j  d¡}| dd¡\}}|dkr2t d¡ dS tj |¡sNt d|¡ dS | j	 
|¡ dS )zyChecks if license_file' is configured and adds it to
        'self.filelist' if the value contains a valid path.
        ZmetadataÚlicense_file)NNNz''license_file' option was not specifiedz8warning: Failed to find the configured license file '%s')r   Zget_option_dictÚgetr   Údebugr   r   rN   rJ   r   r   )r    Zoptsr;   rf   r   r   r   Úcheck_licenseÊ   s    
ÿzsdist.check_license)r-   r.   r/   Ú__doc__Zuser_optionsZnegative_optZREADME_EXTENSIONSÚtuplerM   r#   r%   r&   r   ÚstaticmethodÚ
contextlibÚcontextmanagerr,   Z_sdist__read_template_hackr*   r+   Zhas_leaky_handler5   rF   rG   r   rP   r]   re   ri   Ú__classcell__r   r   rK   r   r      s<   ú
ÿý	

r   )r   )Z	distutilsr   Zdistutils.command.sdistZcommandr   r$   r   r*   rX   rm   Zsetuptools.externr   Z
py36compatr   r   ÚlistZ_default_revctrlr   r   r   r   r   Ú<module>   s   
