£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
U
    e5d=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   //usr/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)pruneNzspecifically 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:qz| 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st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   