509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \¢E  ã               @   s¨   d dl Z d dlZd dlT d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZmZ d dlmZ d dlT d dlmZ d d	lmZ d d
lmZ dd„ ZG dd„ deƒZdS )é    N)Ú*)Úglob)Úwarn)ÚCommand)Údir_utilÚdep_utilÚ	file_utilÚarchive_util)ÚTextFile)ÚFileList)Úlog)Úconvert_pathc              C   sd   ddl m}  ddlm} g }x,|jƒ D ] }|jd| d || d fƒ q&W |jƒ  | |ƒj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ÚsortZ
print_help)r   r   ÚformatsÚformat© r   ú//usr/lib64/python3.6/distutils/command/sdist.pyÚshow_formats   s    r   c               @   sÚ   e Zd ZdZdd„ ZdJdKdLdMdNdOdPdQdRdTdUdVdWdXg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.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 )YÚ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ú	template=Útú5name of manifest template file [default: MANIFEST.in]ú	manifest=Úmú)name of manifest file [default: MANIFEST]úuse-defaultsNúRinclude the default file set in the manifest [default; disable with --no-defaults]úno-defaultsú"don't include the default file setÚpruneú‰specifically exclude files/directories that should not be distributed (build tree, RCS/CVS dirs, etc.) [default; disable with --no-prune]úno-pruneú$don't automatically exclude anythingúmanifest-onlyÚoúEjust regenerate the manifest and then stop (implies --force-manifest)úforce-manifestÚfúkforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.úformats=ú6formats for source distribution (comma-separated list)ú	keep-tempÚkz1keep the distribution tree around after creating zarchive file(s)ú	dist-dir=ÚdúFdirectory to put the source distribution archive(s) in [default: dist]úmetadata-checkú[Ensure that all required elements of meta-data are supplied. Warn if any missing. [default]úowner=Úuú@Owner name used when creating a tar file [default: current user]úgroup=ÚgúAGroup name used when creating a tar file [default: current group]zhelp-formatsz#list available distribution formats)zno-defaultszno-pruneÚcheckc             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_options`   s    zsdist.initialize_optionsc             C   sZ   | j d krd| _ | jd kr d| _| jdƒ tj| jƒ}|rFtd| ƒ‚| jd krVd| _d S )NZMANIFESTzMANIFEST.inr   zunknown archive format '%s'Zdist)rC   rB   Zensure_string_listr	   Zcheck_archive_formatsr   ZDistutilsOptionErrorrG   )r   Z
bad_formatr   r   r   Úfinalize_optionsw   s    




zsdist.finalize_optionsc             C   sB   t ƒ | _x| jƒ D ]}| j|ƒ qW | jƒ  | jr6d S | jƒ  d S )N)r   ÚfilelistZget_sub_commandsZrun_commandÚget_file_listrE   Úmake_distribution)r   Zcmd_namer   r   r   Úrun‡   s    z	sdist.runc             C   s*   t dtƒ | jjdƒ}|jƒ  |jƒ  d S )Nzadistutils.command.sdist.check_metadata is deprecated,               use the check command insteadr@   )r   ÚPendingDeprecationWarningÚdistributionZget_command_objZensure_finalizedrP   )r   r@   r   r   r   Úcheck_metadata�   s
    zsdist.check_metadatac             C   s¢   t jj| jƒ}| r<| jƒ r<| jƒ  | jjƒ  | jjƒ  d S |sP| j	d| j ƒ | jj
ƒ  | jrh| jƒ  |rt| jƒ  | jr‚| jƒ  | jjƒ  | jjƒ  | jƒ  d S )Nz&manifest template '%s' does not exist z(using default file list)z?manifest template '%s' does not exist (using default file list))ÚosÚpathÚisfilerB   Ú_manifest_is_not_generatedÚread_manifestrM   r   Zremove_duplicatesr   ÚfindallrD   Úadd_defaultsÚread_templater'   Úprune_file_listÚwrite_manifest)r   Ztemplate_existsr   r   r   rN   ¥   s(    





zsdist.get_file_listc             C   s2  d| j jg}xŒ|D ]„}t|tƒrn|}d}x*|D ]"}tjj|ƒr.d}| jj|ƒ P q.W |s–| j	ddj
|ƒ ƒ qtjj|ƒrˆ| jj|ƒ q| j	d| ƒ qW dd	g}x*|D ]"}ttjjt|ƒƒ}| jj|ƒ q¨W | jd
ƒ}| j jƒ rò| jj|jƒ ƒ x>|jD ]4\}	}
}}x$|D ]}| jjtjj
|
|ƒƒ �qW � qúW | j jƒ �r¼x|| j jD ]p}t|tƒ�r|t|ƒ}tjj|ƒ�r¶| jj|ƒ n:|\}}x0|D ](}t|ƒ}tjj|ƒ�rŠ| jj|ƒ �qŠW �qHW | j jƒ �râ| jdƒ}| jj|jƒ ƒ | j jƒ �r| jdƒ}| jj|jƒ ƒ | j jƒ �r.| jdƒ}| jj|jƒ ƒ d S )NÚREADMEú
README.txtFTz,standard file not found: should have one of z, zstandard file '%s' not foundztest/test*.pyz	setup.cfgÚbuild_pyÚ	build_extÚ
build_clibÚbuild_scripts)r^   r_   )rR   Zscript_nameÚ
isinstanceÚtuplerT   rU   ÚexistsrM   r   r   ÚjoinÚfilterrV   r   ÚextendÚget_finalized_commandZhas_pure_modulesZget_source_filesZ
data_filesZhas_data_filesÚstrr   Zhas_ext_modulesZhas_c_librariesZhas_scripts)r   Z	standardsÚfnZaltsZgot_itZoptionalÚpatternÚfilesr`   ZpkgZsrc_dirZ	build_dirÚ	filenamesÚfilenameÚitemÚdirnamer/   ra   rb   rc   r   r   r   rZ   Í   s\    






"



zsdist.add_defaultsc             C   s¢   t jd| jƒ t| jddddddd�}zlxf|jƒ }|d kr<P y| jj|ƒ W q* ttfk
rŠ } z| j	d|j
|j|f ƒ W Y d d }~X q*X q*W W d |jƒ  X d S )Nzreading manifest template '%s'rA   )Zstrip_commentsZskip_blanksZ
join_linesZ	lstrip_wsZ	rstrip_wsZcollapse_joinz%s, line %d: %s)r   ÚinforB   r
   ÚreadlinerM   Zprocess_template_lineZDistutilsTemplateErrorÚ
ValueErrorr   rp   Zcurrent_lineÚclose)r   rB   ÚlineÚmsgr   r   r   r[     s     

$zsdist.read_templatec             C   s„   | j dƒ}| j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j|ƒ|f }| jj|dd� d S )NÚbuild)ÚprefixZwin32z/|\\ú/ZRCSZCVSz\.svnz\.hgz\.gitz\.bzrZ_darcsz(^|%s)(%s)(%s).*ú|rA   )Zis_regex)	rj   rR   Úget_fullnamerM   Zexclude_patternZ
build_baseÚsysÚplatformrg   )r   ry   Úbase_dirZsepsZvcs_dirsZvcs_ptrnr   r   r   r\   :  s    


zsdist.prune_file_listc             C   sX   | j ƒ rtjd| j ƒ d S | jjd d … }|jddƒ | j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')
rW   r   rs   rC   rM   rn   ÚinsertZexecuter   Z
write_file)r   Zcontentr   r   r   r]   R  s    
zsdist.write_manifestc          
   C   s<   t jj| jƒsdS t| jƒ}z|jƒ }W d |jƒ  X |dkS )NFz+# file GENERATED by distutils, do NOT edit
)rT   rU   rV   rC   Úopenrt   rv   )r   ÚfpZ
first_liner   r   r   rW   a  s    

z sdist._manifest_is_not_generatedc             C   sX   t jd| jƒ t| jƒ}x2|D ]*}|jƒ }|jdƒs| r<q| jj|ƒ qW |jƒ  d S )Nzreading manifest file '%s'ú#)	r   rs   rC   r‚   ÚstripÚ
startswithrM   r   rv   )r   rC   rw   r   r   r   rX   m  s    

zsdist.read_manifestc             C   s²   | j |ƒ tj||| jd� ttdƒr4d}d| }nd }d| }|sPtjdƒ n
tj|ƒ xD|D ]<}tj	j
|ƒs~tjd|ƒ q`tj	j||ƒ}| j|||d� q`W | j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‡   ÚhasattrrT   r   r   rs   rU   rV   rg   Z	copy_filerR   ZmetadataZwrite_pkg_info)r   r€   rn   rˆ   rx   ÚfileÚdestr   r   r   Úmake_release_tree|  s     
	



zsdist.make_release_treec             C   sº   | j jƒ }tjj| j|ƒ}| j|| jjƒ g }d| j	krT| j	j
| j	j| j	jdƒƒƒ xD| j	D ]:}| j|||| j| jd�}|j
|ƒ | j jj
dd|fƒ q\W || _| js¶tj|| jd� d S )NZtar)r€   rI   rJ   r   Ú )r‡   )rR   r}   rT   rU   rg   rG   rŒ   rM   rn   r   r   ÚpopÚindexZmake_archiverI   rJ   Z
dist_filesrH   rF   r   Zremove_treer‡   )r   r€   Z	base_namerH   ZfmtrŠ   r   r   r   rO   ¦  s    




zsdist.make_distributionc             C   s   | j S )N)rH   )r   r   r   r   Úget_archive_filesÄ  s    zsdist.get_archive_files)r   r   r   )r    r!   r"   )r#   Nr$   )r%   Nr&   )r'   Nr(   )r)   Nr*   )r+   r,   r-   )r.   r/   r0   )r1   Nr2   ú@keep the distribution tree around after creating archive file(s))r3   r4   r‘   )r5   r6   r7   )r8   Nr9   )r:   r;   r<   )r=   r>   r?   )Ú__name__Ú
__module__Ú__qualname__Zdescriptionr   Zuser_optionsZboolean_optionsr   Zhelp_optionsZnegative_optZsub_commandsrK   rL   rP   rS   rN   rZ   r[   r\   r]   rW   rX   rŒ   rO   r�   r   r   r   r   r   !   sj                  

(P*r   )rT   r~   Útypesr   Úwarningsr   Zdistutils.corer   Z	distutilsr   r   r   r	   Zdistutils.text_filer
   Zdistutils.errorsZdistutils.filelistr   r   Zdistutils.utilr   r   r   r   r   r   r   Ú<module>   s   