<!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
    iÛf=J  ã                   @   s´   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 d d
lmZ d dlmZ d dlmZmZ dd„ ZG dd„ deƒZdS )é    N)Úglob)Úwarn)ÚCommand)Údir_util)Ú	file_util)Úarchive_util)ÚTextFile)ÚFileList)Úlog)Úconvert_path)ÚDistutilsTemplateErrorÚDistutilsOptionErrorc                  C   s`   ddl m}  ddlm} g }| ¡ D ] }| d| d || d f¡ q$| ¡  | |ƒ d¡ d S )Nr   )ÚFancyGetopt)ÚARCHIVE_FORMATSúformats=é   z.List of available source distribution formats:)Zdistutils.fancy_getoptr   Zdistutils.archive_utilr   ÚkeysÚappendÚsortZ
print_help)r   r   ÚformatsÚformat© r   ú</opt/alt/python38/lib64/python3.8/distutils/command/sdist.pyÚshow_formats   s    
ÿÿr   c                   @   s"  e Zd ZdZdd„ Zdddddd	d
dddddddgZddddddgZdddefgZdddœZ	defgZ
dZdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zed*d+„ ƒZd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zd8d9„ Zd:d;„ Zd<d=„ Zd>d?„ Zd@dA„ ZdBdC„ ZdDdE„ Z dFdG„ Z!dHdI„ Z"dS )JÚsdistz6create a source distribution (tarball, zip file, etc.)c                 C   s   | j S ©N)Úmetadata_check©Úselfr   r   r   Úchecking_metadata(   s    zsdist.checking_metadata)z	template=Útz5name of manifest template file [default: MANIFEST.in])z	manifest=Úmz)name of manifest file [default: MANIFEST])úuse-defaultsNzRinclude the default file set in the manifest [default; disable with --no-defaults])úno-defaultsNz"don't include the default file set)ÚpruneNz‰specifically exclude files/directories that should not be distributed (build tree, RCS/CVS dirs, etc.) [default; disable with --no-prune])úno-pruneNz$don't automatically exclude anything)úmanifest-onlyÚozEjust regenerate the manifest and then stop (implies --force-manifest))úforce-manifestÚfzkforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.)r   Nz6formats for source distribution (comma-separated list))ú	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])úmetadata-checkNz[Ensure that all required elements of meta-data are supplied. Warn if any missing. [default])zowner=Úuz@Owner name used when creating a tar file [default: current user])zgroup=ÚgzAGroup name used when creating a tar file [default: current group]r"   r$   r&   r(   r*   r-   zhelp-formatsNz#list available distribution formats)r#   r%   Úcheck)ZREADMEz
README.txtz
README.rstc                 C   sT   d | _ d | _d| _d| _d| _d| _dg| _d| _d | _d | _	d| _
d | _d | _d S )Né   r   Zgztar)ÚtemplateÚmanifestÚuse_defaultsr$   Úmanifest_onlyZforce_manifestr   Ú	keep_tempÚdist_dirÚarchive_filesr   ÚownerÚgroupr   r   r   r   Úinitialize_optionse   s    zsdist.initialize_optionsc                 C   sZ   | j d krd| _ | jd kr d| _|  d¡ t | j¡}|rFtd| ƒ‚| jd krVd| _d S )NZMANIFESTzMANIFEST.inr   zunknown archive format '%s'Zdist)r3   r2   Zensure_string_listr   Zcheck_archive_formatsr   r   r7   )r   Z
bad_formatr   r   r   Úfinalize_options|   s    


ÿ
zsdist.finalize_optionsc                 C   s>   t ƒ | _|  ¡ D ]}|  |¡ q|  ¡  | jr2d S |  ¡  d S r   )r	   ÚfilelistZget_sub_commandsZrun_commandÚget_file_listr5   Úmake_distribution)r   Zcmd_namer   r   r   ÚrunŒ   s    z	sdist.runc                 C   s*   t dtƒ | j d¡}| ¡  | ¡  d S )Nzadistutils.command.sdist.check_metadata is deprecated,               use the check command insteadr0   )r   ÚPendingDeprecationWarningÚdistributionZget_command_objZensure_finalizedr@   )r   r0   r   r   r   Úcheck_metadata¢   s    ÿzsdist.check_metadatac                 C   s    t j | j¡}|s:|  ¡ r:|  ¡  | j ¡  | j ¡  d S |sN|  	d| j ¡ | j 
¡  | jrf|  ¡  |rr|  ¡  | jr€|  ¡  | j ¡  | j ¡  |  ¡  d S )Nz?manifest template '%s' does not exist (using default file list))ÚosÚpathÚisfiler2   Ú_manifest_is_not_generatedÚread_manifestr=   r   Zremove_duplicatesr   Úfindallr4   Úadd_defaultsÚread_templater$   Úprune_file_listÚwrite_manifest)r   Ztemplate_existsr   r   r   r>   ª   s(    

þ


zsdist.get_file_listc                 C   s<   |   ¡  |  ¡  |  ¡  |  ¡  |  ¡  |  ¡  |  ¡  d S r   )Ú_add_defaults_standardsÚ_add_defaults_optionalÚ_add_defaults_pythonÚ_add_defaults_data_filesÚ_add_defaults_extÚ_add_defaults_c_libsÚ_add_defaults_scriptsr   r   r   r   rJ   Ò   s    zsdist.add_defaultsc                 C   s:   t j | ¡sdS t j | ¡}t j |¡\}}|t  |¡kS )NF)rD   rE   ÚexistsÚabspathÚsplitÚlistdir)ÚfspathrV   Z	directoryÚfilenamer   r   r   Ú_cs_path_existsè   s
    
zsdist._cs_path_existsc                 C   s–   | j | jjg}|D ]~}t|tƒrj|}d}|D ]"}|  |¡r,d}| j |¡  qPq,|s|  dd 	|¡ ¡ q|  |¡r‚| j |¡ q|  d| ¡ qd S )NFTz,standard file not found: should have one of z, zstandard file '%s' not found)
ÚREADMESrB   Zscript_nameÚ
isinstanceÚtupler[   r=   r   r   Újoin)r   Z	standardsÚfnZaltsZgot_itr   r   r   rN   ù   s"    

ÿ
zsdist._add_defaults_standardsc                 C   s4   ddg}|D ]"}t tjjt|ƒƒ}| j |¡ qd S )Nztest/test*.pyz	setup.cfg)ÚfilterrD   rE   rF   r   r=   Úextend)r   ZoptionalÚpatternÚfilesr   r   r   rO     s    zsdist._add_defaults_optionalc                 C   s\   |   d¡}| j ¡ r$| j | ¡ ¡ |jD ],\}}}}|D ]}| j tj	 
||¡¡ q:q*d S )NÚbuild_py)Úget_finalized_commandrB   Zhas_pure_modulesr=   rb   Úget_source_filesÚ
data_filesr   rD   rE   r_   )r   re   ZpkgZsrc_dirZ	build_dirÚ	filenamesrZ   r   r   r   rP     s    

zsdist._add_defaults_pythonc                 C   sz   | j  ¡ rv| j jD ]b}t|tƒrBt|ƒ}tj |¡rt| j	 
|¡ q|\}}|D ]$}t|ƒ}tj |¡rN| j	 
|¡ qNqd S r   )rB   Zhas_data_filesrh   r]   Ústrr   rD   rE   rF   r=   r   )r   ÚitemÚdirnameri   r)   r   r   r   rQ   $  s    

zsdist._add_defaults_data_filesc                 C   s(   | j  ¡ r$|  d¡}| j | ¡ ¡ d S )NÚ	build_ext)rB   Zhas_ext_modulesrf   r=   rb   rg   )r   rm   r   r   r   rR   5  s    

zsdist._add_defaults_extc                 C   s(   | j  ¡ r$|  d¡}| j | ¡ ¡ d S )NÚ
build_clib)rB   Zhas_c_librariesrf   r=   rb   rg   )r   rn   r   r   r   rS   :  s    

zsdist._add_defaults_c_libsc                 C   s(   | j  ¡ r$|  d¡}| j | ¡ ¡ d S )NÚbuild_scripts)rB   Zhas_scriptsrf   r=   rb   rg   )r   ro   r   r   r   rT   ?  s    

zsdist._add_defaults_scriptsc              
   C   sž   t  d| j¡ t| jddddddd}zh| ¡ }|d kr:qŒz| j |¡ W q( tt	fk
rˆ } z|  
d|j|j|f ¡ W 5 d }~X Y q(X q(W 5 | ¡  X d S )Nzreading manifest template '%s'r1   )Zstrip_commentsZskip_blanksZ
join_linesZ	lstrip_wsZ	rstrip_wsZcollapse_joinz%s, line %d: %s)r
   Úinfor2   r   ÚcloseÚreadliner=   Zprocess_template_liner   Ú
ValueErrorr   rZ   Zcurrent_line)r   r2   ÚlineÚmsgr   r   r   rK   D  s&    
  þ
þ zsdist.read_templatec                 C   s„   |   d¡}| j ¡ }| jjd |jd | jjd |d tjdkrFd}nd}dddd	d
ddg}d|d |¡|f }| jj|dd d S )NÚbuild)ÚprefixZwin32z/|\\ú/ZRCSZCVSz\.svnz\.hgz\.gitz\.bzrZ_darcsz(^|%s)(%s)(%s).*ú|r1   )Zis_regex)	rf   rB   Úget_fullnamer=   Zexclude_patternZ
build_baseÚsysÚplatformr_   )r   rv   Úbase_dirZsepsZvcs_dirsZvcs_ptrnr   r   r   rL   a  s    


ÿzsdist.prune_file_listc                 C   sX   |   ¡ rt d| j ¡ d S | jjd d … }| dd¡ |  tj	| j|fd| j ¡ d S )Nz5not writing to manually maintained manifest file '%s'r   z*# file GENERATED by distutils, do NOT editzwriting manifest file '%s')
rG   r
   rp   r3   r=   rd   ÚinsertZexecuter   Z
write_file)r   Zcontentr   r   r   rM   y  s    ÿÿzsdist.write_manifestc                 C   s<   t j | j¡sdS t| jƒ}z| ¡ }W 5 | ¡  X |dkS )NFz+# file GENERATED by distutils, do NOT edit
)rD   rE   rF   r3   Úopenrq   rr   )r   ÚfpZ
first_liner   r   r   rG   ˆ  s    

z sdist._manifest_is_not_generatedc              	   C   sV   t  d| j¡ t| jƒ4}|D ](}| ¡ }| d¡s|s:q| j |¡ qW 5 Q R X d S )Nzreading manifest file '%s'ú#)r
   rp   r3   r   ÚstripÚ
startswithr=   r   )r   r3   rt   r   r   r   rH   ”  s    zsdist.read_manifestc                 C   s®   |   |¡ tj||| jd ttdƒr4d}d| }nd }d| }|sPt d¡ n
t |¡ |D ]<}tj	 
|¡s|t d|¡ q^tj	 ||¡}| j|||d q^| jj |¡ d S )	N©Údry_runÚlinkZhardzmaking hard links in %s...zcopying files to %s...z)no files to distribute -- empty manifest?z#'%s' not a regular file -- skipping)r†   )Zmkpathr   Zcreate_treer…   ÚhasattrrD   r
   r   rp   rE   rF   r_   Z	copy_filerB   ZmetadataZwrite_pkg_info)r   r}   rd   r†   ru   ÚfileÚdestr   r   r   Úmake_release_tree¢  s     
	


zsdist.make_release_treec                 C   s¶   | j  ¡ }tj | j|¡}|  || jj¡ g }d| j	krT| j	 
| j	 | j	 d¡¡¡ | j	D ]:}| j|||| j| jd}| 
|¡ | j j 
dd|f¡ qZ|| _| js²tj|| jd d S )NZtar)r}   r9   r:   r   Ú r„   )rB   rz   rD   rE   r_   r7   rŠ   r=   rd   r   r   ÚpopÚindexZmake_archiver9   r:   Z
dist_filesr8   r6   r   Zremove_treer…   )r   r}   Z	base_namer8   Zfmtrˆ   r   r   r   r?   Ì  s     




 ÿ
zsdist.make_distributionc                 C   s   | j S r   )r8   r   r   r   r   Úget_archive_filesê  s    zsdist.get_archive_files)#Ú__name__Ú
__module__Ú__qualname__Zdescriptionr   Zuser_optionsZboolean_optionsr   Zhelp_optionsZnegative_optZsub_commandsr\   r;   r<   r@   rC   r>   rJ   Ústaticmethodr[   rN   rO   rP   rQ   rR   rS   rT   rK   rL   rM   rG   rH   rŠ   r?   rŽ   r   r   r   r   r   $   sp   Ý'  þ ÿÿÿ
(
*r   )rD   r{   r   Úwarningsr   Zdistutils.corer   Z	distutilsr   r   r   Zdistutils.text_filer   Zdistutils.filelistr	   r
   Zdistutils.utilr   Zdistutils.errorsr   r   r   r   r   r   r   r   Ú<module>   s   