JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbro h=J@s ddlZddlZddlmZddlmZddlmZddlmZddlm 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)DistutilsTemplateErrorDistutilsOptionErrorcCsb ddlm}ddlm}g}|D]}|d|d||dfq|||ddS)Nr) FancyGetopt)ARCHIVE_FORMATSformats=z.List of available source distribution formats:)Zdistutils.fancy_getoptrZdistutils.archive_utilrkeysappendsortZ print_help)rrformatsformatr>/opt/alt/python310/lib64/python3.10/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.)cC |jSN)metadata_checkselfrrrchecking_metadata(zsdist.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)NrZgztar) templatemanifest use_defaultsr& manifest_onlyZforce_manifestr keep_tempdist_dir archive_filesrownergrouprrrrinitialize_optionses zsdist.initialize_optionscCs^|jdurd|_|jdurd|_|dt|j}|r#td||jdur-d|_dSdS)NZMANIFESTz MANIFEST.inrzunknown archive format '%s'Zdist)r5r4Zensure_string_listrZcheck_archive_formatsrr r9)rZ bad_formatrrrfinalize_options|s      zsdist.finalize_optionscCs>t|_|D]}||q||jrdS|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 insteadr2)rPendingDeprecationWarning distributionZget_command_objZensure_finalizedrB)rr2rrrcheck_metadatas  zsdist.check_metadatacCs tj|j}|s|r||j|jdS|s(| d|j|j |j r4| |r:| |jrA||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_existsrrrr@s*       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_scriptsrrrrrLs  zsdist.add_defaultscCs< tj|s dStj|}tj|\}}|t|vS)NF)rFrGexistsabspathsplitlistdir)fspathrXZ directoryfilenamerrr_cs_path_existss   zsdist._cs_path_existscCs|j|jjg}|D]?}t|tr5|}d}|D]}||r'd}|j|nq|s4|dd |q ||rA|j|q |d|q dS)NFTz,standard file not found: should have one of z, zstandard file '%s' not found) READMESrDZ script_name isinstancetupler]r?rrjoin)rZ standardsfnZaltsZgot_itrrrrPs(    zsdist._add_defaults_standardscCs4ddg}|D]}ttjjt|}|j|qdS)Nz test/test*.pyz setup.cfg)filterrFrGrHrr?extend)rZoptionalpatternfilesrrrrQs zsdist._add_defaults_optionalcCs\|d}|jr|j||jD]\}}}}|D] }|jtj ||qqdS)Nbuild_py) get_finalized_commandrDZhas_pure_modulesr?rdget_source_files data_filesrrFrGra)rrgZpkgZsrc_dirZ build_dir filenamesr\rrrrRs  zsdist._add_defaults_pythoncCs~|jr;|jjD]3}t|tr!t|}tj|r |j |q |\}}|D]}t|}tj|r9|j |q'q dSdSr) rDZhas_data_filesrjr_strr rFrGrHr?r)ritemdirnamerkr+rrrrS$s       zsdist._add_defaults_data_filescC,|jr|d}|j|dSdS)N build_ext)rDZhas_ext_modulesrhr?rdri)rrprrrrT5  zsdist._add_defaults_extcCro)N build_clib)rDZhas_c_librariesrhr?rdri)rrrrrrrU:rqzsdist._add_defaults_c_libscCro)N build_scripts)rDZ has_scriptsrhr?rdri)rrsrrrrV?rqzsdist._add_defaults_scriptsc Cs td|jt|jddddddd}z; |}|durn*z|j|Wn ttfyG}z| d|j |j |fWYd}~nd}~wwqW| dS| w)Nzreading manifest template '%s'r3)Zstrip_commentsZ skip_blanksZ join_linesZ lstrip_wsZ rstrip_wsZ collapse_joinTz%s, line %d: %s) r infor4rreadliner?Zprocess_template_liner ValueErrorrr\Z current_lineclose)rr4linemsgrrrrMDs.   zsdist.read_templatecCs| |d}|j}|jjd|jd|jjd|dtjdkr$d}nd}gd}d|d||f}|jj|d d dS) Nbuild)prefixZwin32z/|\\/)ZRCSZCVSz\.svnz\.hgz\.gitz\.bzrZ_darcsz(^|%s)(%s)(%s).*|r3)Zis_regex) rhrD get_fullnamer?Zexclude_patternZ build_basesysplatformra)rrzbase_dirZsepsZvcs_dirsZvcs_ptrnrrrrNas   zsdist.prune_file_listcCsZ |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') rIr rtr5r?rfinsertZexecuterZ write_file)rZcontentrrrrOys zsdist.write_manifestcCsBtj|js dSt|j}z |}W||dkS|w)NFz+# file GENERATED by distutils, do NOT edit )rFrGrHr5openrurw)rfpZ first_linerrrrIs   z sdist._manifest_is_not_generatedcCsn td|jt|j }|D]}|}|ds|sq|j|qWddS1s0wYdS)Nzreading manifest file '%s'#)r rtr5rstrip startswithr?r)rr5rxrrrrJs "zsdist.read_manifestcCs ||tj|||jdttdrd}d|}nd}d|}|s)tdnt||D]}tj |s?td|q0tj ||}|j |||dq0|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_treerhasattrrFr rrtrGrHraZ copy_filerDZmetadataZwrite_pkg_info)rrrfrryfiledestrrrmake_release_trees"      zsdist.make_release_treecCs |j}tj|j|}|||jjg}d|j vr+|j |j |j d|j D]}|j ||||j|jd}| ||jj dd|fq.||_|js\tj||jddSdS)NZtar)rr;r<rr)rDr~rFrGrar9rr?rfrrpopindexZ make_archiver;r<Z dist_filesr:r8rZ remove_treer)rrZ base_namer:ZfmtrrrrrAs"     zsdist.make_distributioncCrr)r:rrrrget_archive_filesr!zsdist.get_archive_files)#__name__ __module__ __qualname__ descriptionr Z user_optionsZboolean_optionsrZ help_optionsZ negative_optZ sub_commandsr^r=r>rBrEr@rL staticmethodr]rPrQrRrSrTrUrVrMrNrOrIrJrrArrrrrr$sJ' (  * r)rFrrwarningsrZdistutils.corerZ distutilsrrrZdistutils.text_filerZdistutils.filelistr r Zdistutils.utilr Zdistutils.errorsr r rrrrrrs