ž «ÿf²c@sdZddlTddlmZddlmZddlmZddlZddl Z ddl Z ddl Z ddl Z ddl mZddlmZmZmZdd lmZejd krÚdd lmZndd lmZGd d „d eƒZdS(u`distutils.command.upload Implements the Distutils 'upload' subcommand (upload package to PyPI).i(u*(u PyPIRCCommand(uspawn(ulogN(ustandard_b64encode(uurlopenuRequestu HTTPError(uurlparseu2.5(umd5cBsm|EeZdZdZejddgZejdgZdd „Zd d „Zd d „Z dd„Z dS(uuploaduupload binary package to PyPIusignususign files to upload using gpgu identity=uiuGPG identity used to sign filescCs>tj|ƒd|_d|_d|_d|_d|_dS(NuiF( u PyPIRCCommanduinitialize_optionsuusernameupasswordu show_responseuFalseusignuNoneuidentity(uself((u=/opt/alt/python33/lib64/python3.3/distutils/command/upload.pyuinitialize_options#s      uupload.initialize_optionscCsªtj|ƒ|jr/|j r/tdƒ‚n|jƒ}|ikr~|d|_|d|_|d|_|d|_ n|j r¦|j jr¦|j j|_ndS(Nu.Must use --sign for --identity to have meaninguusernameupasswordu repositoryurealm( u PyPIRCCommandufinalize_optionsuidentityusignuDistutilsOptionErroru _read_pypircuusernameupasswordu repositoryurealmu distribution(uselfuconfig((u=/opt/alt/python33/lib64/python3.3/distutils/command/upload.pyufinalize_options+s       uupload.finalize_optionscCsR|jjstdƒ‚nx0|jjD]"\}}}|j|||ƒq(WdS(Nu'No dist file created in earlier command(u distributionu dist_filesuDistutilsOptionErroru upload_file(uselfucommandu pyversionufilename((u=/opt/alt/python33/lib64/python3.3/distutils/command/upload.pyurun=s u upload.runc$Csút|jƒ\}}}}}} |s3|s3| rItd|jƒ‚n|dIkrhtd|ƒ‚n|jr¾ddd|g} |jr¨d|jg| d d …6t,t2|ƒƒd?6|d@6}t3|jdA|dB|ƒ}y%t4|ƒ}|j5ƒ}|j6} Wn{t7j8k r(}!z"|j/t,|!ƒt0j9ƒdSWYdd}!~!Xn7t:k r^}!z|!j;}|!j6} WYdd}!~!XnX|dCkr‹|j/dD|| ft0j1ƒn|j/dE|| ft0j9ƒ|j<rö|j=|ƒ}"dFj>dGdH|"dGdHfƒ}#|j/|#t0j1ƒndS(KNuIncompatible url %suhttpuhttpsuunsupported schema ugpgu --detach-signu-au --local-useriudry_runurbu file_uploadu:actionu1uprotcol_versionunameuversionucontentufiletypeu pyversionu md5_digestu1.0umetadata_versionusummaryu home_pageuauthoru author_emailulicenseu descriptionukeywordsuplatformu classifiersu download_urluprovidesurequiresu obsoletesuu bdist_rpmubuilt for %s %su bdist_dumbu built for %suterseiucommentu.ascu gpg_signatureu:uasciiuBasic u3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s--u* Content-Disposition: form-data; name="%s"u; filename="%s"iuutf-8s s s uSubmitting %s to %su multipart/form-data; boundary=%su Content-typeuContent-lengthu AuthorizationudatauheadersiÈuServer response (%s): %suUpload failed (%s): %su u-iK(uhttpuhttpsiÿÿÿÿ(?uurlparseu repositoryuAssertionErrorusignuidentityuspawnudry_runuopenureaducloseu distributionumetadatauget_nameu get_versionuosupathubasenameumd5u hexdigestuget_descriptionuget_urlu get_contactuget_contact_emailu get_licenceuget_long_descriptionu get_keywordsu get_platformsuget_classifiersuget_download_urlu get_providesu get_requiresu get_obsoletesuplatformudistuusernameupassworduencodeustandard_b64encodeudecodeuiouBytesIOuitemsutypeutupleustruwriteugetvalueuannounceuloguINFOulenuRequestuurlopenugetcodeumsgusocketuerroruERRORu HTTPErrorucodeu show_responseu_read_pypi_responseujoin($uselfucommandu pyversionufilenameuschemaunetlocuurluparamsuqueryu fragmentsugpg_argsufucontentumetaudataucommentudistuversionuidu user_passuauthuboundaryu sep_boundaryu end_boundaryubodyukeyuvalueutitleuheadersurequesturesultustatusureasonueutextumsg((u=/opt/alt/python33/lib64/python3.3/distutils/command/upload.pyu upload_fileCsÈ!                         #                         uupload.upload_fileN(usignususign files to upload using gpg(u identity=uiuGPG identity used to sign files( u__name__u __module__u __qualname__u descriptionu PyPIRCCommandu user_optionsuboolean_optionsuinitialize_optionsufinalize_optionsurunu upload_file(u __locals__((u=/opt/alt/python33/lib64/python3.3/distutils/command/upload.pyuuploads    uupload(u__doc__udistutils.errorsudistutils.coreu PyPIRCCommandudistutils.spawnuspawnu distutilsulogusysuosuiousocketuplatformubase64ustandard_b64encodeuurllib.requestuurlopenuRequestu HTTPErroru urllib.parseuurlparseuversionumd5uhashlibuupload(((u=/opt/alt/python33/lib64/python3.3/distutils/command/upload.pyus