_dddlmZddlmcmZddlZddlZddlZddl Z ddl m Z ddl m Z ddlmZeZd dZGd d ejZy) )logN)chain)metadata)_ORIGINAL_SUBCOMMANDSc#KtjdD]!}|j|D]}|#yw)z%Find all files under revision controlzsetuptools.file_finders)groupN)r entry_pointsload)dirnameepitems :/usr/lib/python3/dist-packages/setuptools/command/sdist.py walk_revctrlrsB##*CDBGGIg& DJ s<>ceZdZdZgdZiZgdZedeDZdZ dZ dZ dZ e ejd Zfd Zfd Zd Zd ZdZdZfdZdZdZdZdZxZS)sdistz=Smart sdist that finds anything supported by revision control))zformats=Nz6formats for source distribution (comma-separated list))z 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])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])z.rstz.txtz.mdc#>K|]}dj|yw)z README{0}N)format).0exts r zsdist.4sIK&&s+Isc|jd|jd}|j|_|jjtj j |jd|j|jD]}|j||jt|jdg}|jD]}dd|f}||vs |j|y)Negg_infoz SOURCES.txt dist_filesrr) run_commandget_finalized_commandfilelistappendospathjoinr check_readmeget_sub_commandsmake_distributiongetattr distribution archive_files)selfei_cmdcmd_namer filedatas rrunz sdist.run6s $++J7  RWW\\&//=IJ --/ 'H   X & '  T.. bA && (DR&D:%!!$' (cbtjj||jyN)origrinitialize_options_default_to_gztarr.s rr8zsdist.initialize_optionsIs  %%d+  r4c<tjdk\rydg|_y)N)rbetargztar)sys version_infoformatsr:s rr9zsdist._default_to_gztarNs   3 3 y r4c|j5tjj|dddy#1swYyxYw)z% Workaround for #516 N)_remove_os_linkr7rr*r:s rr*zsdist.make_distributionTs7 ! ! # / JJ ( ( . / / /s :Ac#KGdd}ttd|} t` d||urt td|yy#t$rY'wxYw#||urt td|wwxYww)zG In a context, remove and restore os.link if it exists c eZdZy)&sdist._remove_os_link..NoValueN)__name__ __module__ __qualname__r4rNoValuerGbs r4rLlinkN)r+r%rM Exceptionsetattr)rLorig_vals rrDzsdist._remove_os_link[sz  2vw/  . w&FH-'     w&FH-'s8A+AAA+ A  A+ A  A+A((A+cBt||jyr6)super add_defaults _add_defaults_build_sub_commandsr. __class__s rrSzsdist.add_defaultsps  --/r4ct|tjj dr|j j dyy)Nzpyproject.toml)rR_add_defaults_optionalr%r&isfiler#r$rUs rrXzsdist._add_defaults_optionalts7 &( 77>>* + MM !1 2 ,r4c|jjr[|jd}|jj |j |j |j|yy)zgetting python filesbuild_pyN)r,has_pure_modulesr"r#extendget_source_files_add_data_files_safe_data_filesr.r[s r_add_defaults_pythonzsdist._add_defaults_pythonys]    - - /11*=H MM !:!:!< =  !6!6x!@ A 0r4cjd}t|jtz }fd|D}d|D}jj t j|y)Nbuildc3@K|]}j|ywr6)r")rcr.s rrz9sdist._add_defaults_build_sub_commands..sD!**1-Dsc3VK|]!}t|ds|j#yw)r^N)hasattrr^)rrfs rrz9sdist._add_defaults_build_sub_commands..s#V!wqBT7U##%Vs)))r"setr)rr#r]r from_iterable)r.rd missing_cmdscmdsfiless` rrTz&sdist._add_defaults_build_sub_commandss]**73511347LL D|DVtV U0078r4c|jS)a Since the ``sdist`` class is also used to compute the MANIFEST (via :obj:`setuptools.command.egg_info.manifest_maker`), there might be recursion problems when trying to obtain the list of data_files and ``include_package_data=True`` (which in turn depends on the files included in the MANIFEST). To avoid that, ``manifest_maker`` should be able to overwrite this method and avoid recursive attempts to build/analyze the MANIFEST. ) data_filesras rr`zsdist._safe_data_filess"""r4cH|jjd|Dy)zA Add data files as found in build_py.data_files. c3tK|]0\}}}}|D]$}tjj||&2ywr6)r%r&r')r_src_dir filenamesnames rrz(sdist._add_data_files..sD (7Ay!  GGLL$ ' ' s68N)r#r])r.ros rr_zsdist._add_data_filess#  ,6  r4cl t|y#t$rtjdYywxYw)Nz&data_files contains unexpected objects)rR_add_defaults_data_files TypeErrorrwarnrUs rrwzsdist._add_defaults_data_filess/ ? G , . ? HH= > ?s 33c|jD]#}tjj|s#y|j ddj |jzy)Nz,standard file not found: should have one of z, )READMESr%r&existsryr')r.fs rr(zsdist.check_readmesK Aww~~a   II>4<>$#7 IIdO NN; - "":.@@Fr4ctjj|jsyt j |jd5}|j }ddddjk7S#1swYxYw)NFrbz+# file GENERATED by distutils, do NOT edit )r%r&rYmanifestioopenreadlineencode)r.fp first_lines r_manifest_is_not_generatedz sdist._manifest_is_not_generatedsbww~~dmm, WWT]]D ) 'RJ 'KRRTTT ' 's A77Bctjd|jt|jd}|D]S} |j d}|j}|jds|s9|jj|U|jy#t $rtj d|zYwxYw)zRead the manifest file (named by 'self.manifest') and use it to fill in 'self.filelist', the list of files to include in the source distribution. zreading manifest file '%s'rzUTF-8z"%r not UTF-8 decodable -- skipping#N) rinforrdecodeUnicodeDecodeErrorrystrip startswithr#r$close)r.rlines r read_manifestzsdist.read_manifests -t}}= t, 'D {{7+ ::rs@&& !(ADJJAr4