JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrU Qab@sddlmZddlmmZddlZddlZddlZddl Z ddl m Z ddl m Z ddlZeZd ddZGd d d e ejZdS) )logN)six)sdist_add_defaultsccs,tdD]}||D] }|Vqq dS)z%Find all files under revision controlzsetuptools.file_findersN) pkg_resourcesZiter_entry_pointsload)dirnameZepitemr )szsdist.cCs|d|d}|j|_|jtj|jd|| D]}||qD| t |j dg}|j D] }dd|f}||krp||qpdS)Negg_infoz SOURCES.txt dist_filesrr)Z run_commandget_finalized_commandfilelistappendospathjoinr check_readmeZget_sub_commandsmake_distributiongetattr distributionZ archive_files)selfZei_cmdZcmd_namerfiledatar r r run+s      z sdist.runcCstj||dS)N)origrinitialize_options_default_to_gztarr r r r r%>s zsdist.initialize_optionscCstjdkrdSdg|_dS)N)rZbetarZgztar)sys version_infoZformatsr'r r r r&Cs zsdist._default_to_gztarc Cs$|tj|W5QRXdS)z% Workaround for #516 N)_remove_os_linkr$rrr'r r r rIs zsdist.make_distributionc cs^Gddd}ttd|}zt`Wntk r6YnXz dVW5||k rXttd|XdS)zG In a context, remove and restore os.link if it exists c@s eZdZdS)z&sdist._remove_os_link..NoValueN)__name__ __module__ __qualname__r r r r NoValueWsr0linkN)rrr1 Exceptionsetattr)r0Zorig_valr r r r,Ps  zsdist._remove_os_linkcCsLztj|Wn6tk rFt\}}}|jjjd YnXdS)Ntemplate) r$r read_templater2r*exc_infotb_nexttb_framef_localsclose)r _tbr r r Z__read_template_hackes zsdist.__read_template_hack)r=)r(r)r(r)r(r=)r(r=rcs^|jrZ|d}|j||jjsZ|jD]&\}}}|jfdd|Dq2dS)zgetting python filesbuild_pycsg|]}tj|qSr )rrr)rfilenameZsrc_dirr r sz.sdist._add_defaults_python..N)rZhas_pure_modulesrrextendZget_source_filesZinclude_package_dataZ data_files)r r@r; filenamesr rBr _add_defaults_python|s  zsdist._add_defaults_pythoncsDz tjrt|n tWntk r>tdYnXdS)Nz&data_files contains unexpected objects)rZPY2r_add_defaults_data_filessuper TypeErrorrwarnr' __class__r r rGs  zsdist._add_defaults_data_filescCs8|jD]}tj|rdSq|dd|jdS)Nz,standard file not found: should have one of z, )READMESrrexistsrJr)r fr r r rs   zsdist.check_readmecCs^tj|||tj|d}ttdrJtj|rJt|| d|| d |dS)Nz setup.cfgr1r) r$rmake_release_treerrrhasattrrNunlinkZ copy_filerZsave_version_info)r Zbase_dirfilesdestr r r rPs   zsdist.make_release_treec Cs@tj|jsdSt|jd}|}W5QRX|dkS)NFrbz+# file GENERATED by distutils, do NOT edit )rrisfilemanifestioopenreadlineencode)r fpZ first_liner r r _manifest_is_not_generatedsz sdist._manifest_is_not_generatedc Cstd|jt|jd}|D]d}tjr^z|d}Wn&tk r\td|YqYnX| }| ds|svq|j |q| dS)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'rUzUTF-8z"%r not UTF-8 decodable -- skipping#N)rinforWrYrZPY3decodeUnicodeDecodeErrorrJstrip startswithrrr:)r rWliner r r read_manifests  zsdist.read_manifestcCs^|jd}|dd\}}|dkr2tddStj|sNtd|dS|j |dS)zyChecks if license_file' is configured and adds it to 'self.filelist' if the value contains a valid path. Zmetadata license_file)NNNz''license_file' option was not specifiedz8warning: Failed to find the configured license file '%s') rZget_option_dictgetrdebugrrrNrJrr)r Zoptsr;rfr r r check_licenses   zsdist.check_license)r-r.r/__doc__Z user_optionsZ negative_optZREADME_EXTENSIONStuplerMr#r%r&r staticmethod contextlibcontextmanagerr,Z_sdist__read_template_hackr*r+Zhas_leaky_handler5rFrGrrPr]reri __classcell__r r rKr rs<        r)r)Z distutilsrZdistutils.command.sdistZcommandrr$rr*rXrmZsetuptools.externrZ py36compatrrlistZ_default_revctrlr r r r r s