a  ze=J@sddlZddlZddlmZddlmZddlmZddlmZddlm Z ddlm Z ddl m Z dd l mZdd lmZdd lmZdd lmZmZd dZGdddeZdS)N)glob)warn)Command)dir_util) file_util) archive_util)TextFile)FileList)log) convert_path)DistutilsTemplateErrorDistutilsOptionErrorcCs`ddlm}ddlm}g}|D] }|d|d||dfq$|||ddS)Nr) FancyGetopt)ARCHIVE_FORMATSformats=z.List of available source distribution formats:)Zdistutils.fancy_getoptrZdistutils.archive_utilrkeysappendsort print_help)rrformatsformatrK/opt/bitninja-python-dojo/embedded/lib/python3.9/distutils/command/sdist.py show_formatss     rc@seZdZdZddZgdZgdZdddefgZd d d Z d efgZ d Z ddZ ddZ ddZddZddZddZeddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Z d6d7Z!d8d9Z"dS):sdistz6create a source distribution (tarball, zip file, etc.)cCs|jSN)metadata_checkselfrrrchecking_metadata(szsdist.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-onlyozEjust regenerate the manifest and then stop (implies --force-manifest))force-manifestfzkforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.)rNz6formats for source distribution (comma-separated list)) keep-tempkz@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])zowner=uz@Owner name used when creating a tar file [default: current user])zgroup=gzAGroup name used when creating a tar file [default: current group])r#r%r'r)r+r.z help-formatsNz#list available distribution formatsr#r%)r$r&check)ZREADMEz README.txtz README.rstcCsTd|_d|_d|_d|_d|_d|_dg|_d|_d|_d|_ d|_ d|_ d|_ dS)Nrgztar) templatemanifest use_defaultsr% manifest_onlyZforce_manifestr keep_tempdist_dir archive_filesrownergrouprrrrinitialize_optionseszsdist.initialize_optionscCsZ|jdurd|_|jdur d|_|dt|j}|rFtd||jdurVd|_dS)NZMANIFESTz MANIFEST.inrzunknown archive format '%s'dist)r5r4Zensure_string_listrZcheck_archive_formatsrr r9)rZ bad_formatrrrfinalize_options|s     zsdist.finalize_optionscCs>t|_|D]}||q||jr2dS|dSr)r filelistZget_sub_commandsZ run_command get_file_listr7make_distribution)rZcmd_namerrrruns  z sdist.runcCs*tdt|jd}||dS)Nzadistutils.command.sdist.check_metadata is deprecated, use the check command insteadr1)rPendingDeprecationWarning distributionZget_command_objZensure_finalizedrC)rr1rrrcheck_metadatas  zsdist.check_metadatacCstj|j}|s:|r:||j|jdS|sN| d|j|j |j rf| |rr| |jr||j|j|dS)Nz?manifest template '%s' does not exist (using default file list))ospathisfiler4_manifest_is_not_generated read_manifestr@rZremove_duplicatesrfindallr6 add_defaults read_templater%prune_file_listwrite_manifest)rZtemplate_existsrrrrAs(      zsdist.get_file_listcCs<|||||||dSr)_add_defaults_standards_add_defaults_optional_add_defaults_python_add_defaults_data_files_add_defaults_ext_add_defaults_c_libs_add_defaults_scriptsrrrrrMszsdist.add_defaultscCs:tj|sdStj|}tj|\}}|t|vS)NF)rGrHexistsabspathsplitlistdir)fspathrYZ directoryfilenamerrr_cs_path_existss  zsdist._cs_path_existscCs|j|jjg}|D]~}t|trj|}d}|D]"}||r,d}|j|qPq,|s|dd |q||r|j|q|d|qdS)NFTz,standard file not found: should have one of z, zstandard file '%s' not found) READMESrEZ script_name isinstancetupler^r@rrjoin)rZ standardsfnZaltsZgot_itrrrrQs"    zsdist._add_defaults_standardscCs4ddg}|D]"}ttjjt|}|j|q dS)Nz test/test*.pyz setup.cfg)filterrGrHrIrr@extend)rZoptionalpatternfilesrrrrRszsdist._add_defaults_optionalcCs\|d}|jr$|j||jD],\}}}}|D]}|jtj ||q:q*dS)Nbuild_py) get_finalized_commandrEZhas_pure_modulesr@reget_source_files data_filesrrGrHrb)rrhZpkgZsrc_dirZ build_dir filenamesr]rrrrSs   zsdist._add_defaults_pythoncCsz|jrv|jjD]b}t|trBt|}tj|rt|j |q|\}}|D]$}t|}tj|rN|j |qNqdSr) rEZhas_data_filesrkr`strr rGrHrIr@r)ritemdirnamerlr*rrrrT$s     zsdist._add_defaults_data_filescCs(|jr$|d}|j|dS)N build_ext)rEZhas_ext_modulesrir@rerj)rrprrrrU5s  zsdist._add_defaults_extcCs(|jr$|d}|j|dS)N build_clib)rEZhas_c_librariesrir@rerj)rrqrrrrV:s  zsdist._add_defaults_c_libscCs(|jr$|d}|j|dS)N build_scripts)rEZ has_scriptsrir@rerj)rrrrrrrW?s  zsdist._add_defaults_scriptsc Cstd|jt|jddddddd}zr|}|dur:qz|j|Wq(ttfy}z$| d|j |j |fWYd}~q(d}~00q(W| n | 0dS)Nzreading manifest template '%s'r2)Zstrip_commentsZ skip_blanksZ join_linesZ lstrip_wsZ rstrip_wsZ collapse_joinz%s, line %d: %s) r infor4rreadliner@Zprocess_template_liner ValueErrorrr]Z current_lineclose)rr4linemsgrrrrNDs"  "zsdist.read_templatecCsz|d}|j}|jjd|jd|jjd|dtjdkrFd}nd}gd}d|d||f}|jj|d d dS) Nbuild)prefixwin32z/|\\/)RCSCVSz\.svnz\.hgz\.gitz\.bzr_darcsz(^|%s)(%s)(%s).*|r2)Zis_regex) rirE get_fullnamer@Zexclude_patternZ build_basesysplatformrb)rrybase_dirsepsZvcs_dirsZvcs_ptrnrrrrOas   zsdist.prune_file_listcCsX|rtd|jdS|jjdd}|dd|tj |j|fd|jdS)Nz5not writing to manually maintained manifest file '%s'rz*# file GENERATED by distutils, do NOT editzwriting manifest file '%s') rJr rsr5r@rginsertZexecuterZ write_file)rZcontentrrrrPys zsdist.write_manifestcCsDtj|jsdSt|j}z|}W|n |0|dkS)NFz+# file GENERATED by distutils, do NOT edit )rGrHrIr5openrtrv)rfpZ first_linerrrrJs  z sdist._manifest_is_not_generatedcCsjtd|jt|j>}|D](}|}|ds|s:q|j|qWdn1s\0YdS)Nzreading manifest file '%s'#)r rsr5rstrip startswithr@r)rr5rwrrrrKs zsdist.read_manifestcCs||tj|||jdttdr4d}d|}n d}d|}|sPtdn t||D]<}tj |s|td|q^tj ||}|j |||dq^|j j|dS) Ndry_runlinkZhardzmaking hard links in %s...zcopying files to %s...z)no files to distribute -- empty manifest?z#'%s' not a regular file -- skipping)r)ZmkpathrZ create_treerhasattrrGr rrsrHrIrbZ copy_filerEmetadataZwrite_pkg_info)rrrgrrxfiledestrrrmake_release_trees      zsdist.make_release_treecCs|j}tj|j|}|||jjg}d|j vrT|j |j |j d|j D]:}|j ||||j|jd}| ||jj dd|fqZ||_|jstj||jddS)Ntar)rr;r<rr)rErrGrHrbr9rr@rgrrpopindex make_archiver;r<Z dist_filesr:r8rZ remove_treer)rr base_namer:fmtrrrrrBs     zsdist.make_distributioncCs|jSr)r:rrrrget_archive_filesszsdist.get_archive_files)#__name__ __module__ __qualname__ descriptionr Z user_optionsZboolean_optionsrZ help_optionsZ negative_optZ sub_commandsr_r=r?rCrFrArM staticmethodr^rQrRrSrTrUrVrWrNrOrPrJrKrrBrrrrrr$sH' (  *r)rGrrwarningsrZdistutils.corerZ distutilsrrrZdistutils.text_filerZdistutils.filelistr r Zdistutils.utilr Zdistutils.errorsr r rrrrrrs