£Á°è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>
B
    YI~d7J                 @   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   sd   ddl m}  ddlm} g }x,| D ] }|d| d || d f q&W |  | |d d S )Nr   )FancyGetopt)ARCHIVE_FORMATSzformats=   z.List of available source distribution formats:)Zdistutils.fancy_getoptr   Zdistutils.archive_utilr   keysappendsort
print_help)r   r   formatsformat r   </opt/alt/python37/lib64/python3.7/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])zuse-defaultsNzRinclude the default file set in the manifest [default; disable with --no-defaults])z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])zno-pruneNz$don't automatically exclude anything)zmanifest-onlyozEjust regenerate the manifest and then stop (implies --force-manifest))zforce-manifestfzkforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.)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])z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]zuse-defaultsr    zmanifest-onlyzforce-manifestz	keep-tempzmetadata-checkzhelp-formatsNz#list available distribution formats)zno-defaultszno-prune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group)r   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)r*   r)   Zensure_string_listr   Zcheck_archive_formatsr   r   r.   )r   Z
bad_formatr   r   r   finalize_options|   s    




zsdist.finalize_optionsc             C   sB   t  | _x|  D ]}| | qW |   | jr6d S |   d S )N)r	   filelistZget_sub_commandsZrun_commandget_file_listr,   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 insteadr'   )r   PendingDeprecationWarningdistributionZget_command_objZensure_finalizedr7   )r   r'   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isfiler)   _manifest_is_not_generatedread_manifestr4   r   Zremove_duplicatesr   findallr+   add_defaultsread_templater    prune_file_listwrite_manifest)r   Ztemplate_existsr   r   r   r5      s&    





zsdist.get_file_listc             C   s<   |    |   |   |   |   |   |   d S )N)_add_defaults_standards_add_defaults_optional_add_defaults_python_add_defaults_data_files_add_defaults_ext_add_defaults_c_libs_add_defaults_scripts)r   r   r   r   rA      s    zsdist.add_defaultsc             C   s:   t j| sdS t j| }t j|\}}|t |kS )NF)r;   r<   existsabspathsplitlistdir)fspathrM   Z	directoryfilenamer   r   r   _cs_path_exists   s
    
zsdist._cs_path_existsc             C   s   | j | jjg}x|D ]}t|trn|}d}x(|D ] }| |r0d}| j| P q0W |s| dd	|  q| |r| j| q| d|  qW d S )NFTz,standard file not found: should have one of z, zstandard file '%s' not found)
READMESr9   Zscript_name
isinstancetuplerR   r4   r   r   join)r   Z	standardsfnZaltsZgot_itr   r   r   rE      s     




zsdist._add_defaults_standardsc             C   s8   ddg}x*|D ]"}t tjjt|}| j| qW d S )Nztest/test*.pyz	setup.cfg)filterr;   r<   r=   r   r4   extend)r   Zoptionalpatternfilesr   r   r   rF     s    
zsdist._add_defaults_optionalc             C   sd   |  d}| j r$| j|  x:|jD ]0\}}}}x"|D ]}| jtj	
|| q>W q,W d S )Nbuild_py)get_finalized_commandr9   Zhas_pure_modulesr4   rY   get_source_files
data_filesr   r;   r<   rV   )r   r\   ZpkgZsrc_dirZ	build_dir	filenamesrQ   r   r   r   rG     s    


zsdist._add_defaults_pythonc             C   s   | j  r~xr| j jD ]f}t|trDt|}tj|rz| j	
| q|\}}x,|D ]$}t|}tj|rR| j	
| qRW qW d S )N)r9   Zhas_data_filesr_   rT   strr   r;   r<   r=   r4   r   )r   itemdirnamer`   r"   r   r   r   rH   $  s    


zsdist._add_defaults_data_filesc             C   s(   | j  r$| d}| j|  d S )N	build_ext)r9   Zhas_ext_modulesr]   r4   rY   r^   )r   rd   r   r   r   rI   5  s    

zsdist._add_defaults_extc             C   s(   | j  r$| d}| j|  d S )N
build_clib)r9   Zhas_c_librariesr]   r4   rY   r^   )r   re   r   r   r   rJ   :  s    

zsdist._add_defaults_c_libsc             C   s(   | j  r$| d}| j|  d S )Nbuild_scripts)r9   Zhas_scriptsr]   r4   rY   r^   )r   rf   r   r   r   rK   ?  s    

zsdist._add_defaults_scriptsc          
   C   s   t d| j t| jddddddd}zlxf| }|d kr<P y| j| W q* ttfk
r } z| 	d|j
|j|f  W d d }~X Y q*X q*W W d |  X d S )Nzreading manifest template '%s'r(   )Zstrip_commentsZskip_blanksZ
join_linesZ	lstrip_wsZ	rstrip_wsZcollapse_joinz%s, line %d: %s)r
   infor)   r   readliner4   Zprocess_template_liner   
ValueErrorr   rQ   Zcurrent_lineclose)r   r)   linemsgr   r   r   rB   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)prefixwin32z/|\\/ZRCSZCVSz\.svnz\.hgz\.gitz\.bzrZ_darcsz(^|%s)(%s)(%s).*|r(   )Zis_regex)	r]   r9   get_fullnamer4   Zexclude_patternZ
build_basesysplatformrV   )r   rm   base_dirsepsZvcs_dirsZvcs_ptrnr   r   r   rC   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')
r>   r
   rg   r*   r4   r[   insertZexecuter   Z
write_file)r   Zcontentr   r   r   rD   y  s    
zsdist.write_manifestc             C   s<   t j| jsdS t| j}z| }W d |  X |dkS )NFz+# file GENERATED by distutils, do NOT edit
)r;   r<   r=   r*   openrh   rj   )r   fpZ
first_liner   r   r   r>     s    

z sdist._manifest_is_not_generatedc             C   sV   t d| j t| j}x0|D ](}| }|ds|s:q| j| qW |  d S )Nzreading manifest file '%s'#)	r
   rg   r*   rx   strip
startswithr4   r   rj   )r   r*   rk   r   r   r   r?     s    

zsdist.read_manifestc             C   s   |  | tj||| jd ttdr4d}d| }nd }d| }|sPtd n
t| xD|D ]<}tj	
|s~td| q`tj	||}| j|||d q`W | 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}   hasattrr;   r
   r   rg   r<   r=   rV   Z	copy_filer9   ZmetadataZwrite_pkg_info)r   ru   r[   r~   rl   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 xD| j	D ]:}| j|||| j| jd}|
| | j j
dd|f q\W || _| jstj|| jd d S )NZtar)ru   r0   r1   r    )r}   )r9   rr   r;   r<   rV   r.   r   r4   r[   r   r   popindexZmake_archiver0   r1   Z
dist_filesr/   r-   r   Zremove_treer}   )r   ru   Z	base_namer/   Zfmtr   r   r   r   r6     s    




zsdist.make_distributionc             C   s   | j S )N)r/   )r   r   r   r   get_archive_files  s    zsdist.get_archive_files)#__name__
__module____qualname__descriptionr   Zuser_optionsZboolean_optionsr   Zhelp_optionsZnegative_optZsub_commandsrS   r2   r3   r7   r:   r5   rA   staticmethodrR   rE   rF   rG   rH   rI   rJ   rK   rB   rC   rD   r>   r?   r   r6   r   r   r   r   r   r   $   s^   

(*r   )r;   rs   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   