3 \�E�@s�ddlZddlZddlTddlmZddlmZddlmZddlm Z m Z m Z m Z ddl mZddlTddlmZdd lmZdd lmZd d �ZGd d�de�ZdS)�N)�*)�glob)�warn)�Command)�dir_util�dep_util� file_util� archive_util)�TextFile)�FileList)�log)� convert_pathcCsdddlm}ddlm}g}x,|j�D] }|jd|d||df�q&W|j�||�jd�dS)Nr)� FancyGetopt)�ARCHIVE_FORMATSzformats=�z.List of available source distribution formats:)Zdistutils.fancy_getoptrZdistutils.archive_utilr�keys�append�sortZ print_help)rr�formats�format�r�//usr/lib64/python3.6/distutils/command/sdist.py� show_formatss   rc@s�eZdZdZdd�ZdJdKdLdMdNdOdPdQdRdTdUdVdWdXgZd ddddd"gZd*d d+efgZd dd,�Z d-efgZ d.d/�Z d0d1�Z d2d3�Z d4d5�Zd6d7�Zd8d9�Zd:d;�Zdd?�Zd@dA�ZdBdC�ZdDdE�ZdFdG�ZdHdI�Zd S)Y�sdistz6create a source distribution (tarball, zip file, etc.)cCs|jS)N)�metadata_check)�selfrrr�checking_metadata%szsdist.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 zarchive 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-defaultszno-prune�checkcCsTd|_d|_d|_d|_d|_d|_dg|_d|_d|_d|_ d|_ d|_ d|_ dS)N�rZgztar) �template�manifest� use_defaultsr'� manifest_onlyZforce_manifestr� keep_temp�dist_dir� archive_filesr�owner�group)rrrr�initialize_options`szsdist.initialize_optionscCsZ|jdkrd|_|jdkr d|_|jd�tj|j�}|rFtd|��|jdkrVd|_dS)NZMANIFESTz MANIFEST.inrzunknown archive format '%s'Zdist)rCrBZensure_string_listr Zcheck_archive_formatsrZDistutilsOptionErrorrG)rZ bad_formatrrr�finalize_optionsws      zsdist.finalize_optionscCsBt�|_x|j�D]}|j|�qW|j�|jr6dS|j�dS)N)r �filelistZget_sub_commandsZ run_command� get_file_listrE�make_distribution)rZcmd_namerrr�run�sz sdist.runcCs*tdt�|jjd�}|j�|j�dS)Nzadistutils.command.sdist.check_metadata is deprecated, use the check command insteadr@)r�PendingDeprecationWarning� distributionZget_command_objZensure_finalizedrP)rr@rrr�check_metadata�s  zsdist.check_metadatacCs�tjj|j�}| r<|j�r<|j�|jj�|jj�dS|sP|j d|j�|jj �|j rh|j �|rt|j �|jr�|j�|jj�|jj�|j�dS)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_manifestrMrZremove_duplicatesr�findallrD� add_defaults� read_templater'�prune_file_list�write_manifest)rZtemplate_existsrrrrN�s(      zsdist.get_file_listcCs2d|jjg}x�|D]�}t|t�rn|}d}x*|D]"}tjj|�r.d}|jj|�Pq.W|s�|j ddj |��qtjj|�r�|jj|�q|j d|�qWdd g}x*|D]"}t tjj t |��}|jj|�q�W|jd �}|jj�r�|jj|j��x>|jD]4\} } } } x$| D]} |jjtjj | | ���q W�q�W|jj��r�x||jjD]p}t|t��r|t|�}tjj |��r�|jj|�n:|\}} x0| D](}t|�}tjj |��r�|jj|��q�W�qHW|jj��r�|jd �}|jj|j��|jj��r|jd �}|jj|j��|jj��r.|jd �}|jj|j��dS)N�README� README.txtFTz,standard file not found: should have one of z, zstandard file '%s' not foundz test/test*.pyz setup.cfg�build_py� build_ext� build_clib� build_scripts)r^r_)rRZ script_name� isinstance�tuplerTrU�existsrMrr�join�filterrVr�extend�get_finalized_commandZhas_pure_modulesZget_source_filesZ data_filesZhas_data_files�strr Zhas_ext_modulesZhas_c_librariesZ has_scripts)rZ standards�fnZaltsZgot_itZoptional�pattern�filesr`ZpkgZsrc_dirZ build_dir� filenames�filename�item�dirnamer/rarbrcrrrrZ�s\           "         zsdist.add_defaultscCs�tjd|j�t|jddddddd�}zlxf|j�}|dkrr?)�__name__� __module__� __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsZ negative_optZ sub_commandsrKrLrPrSrNrZr[r\r]rWrXr�rOr�rrrrr!sj  (P *r)rTr~�typesr�warningsrZdistutils.corerZ distutilsrrrr Zdistutils.text_filer Zdistutils.errorsZdistutils.filelistr r Zdistutils.utilr rrrrrr�s