asda?‰PNG  IHDR ? f ??C1 sRGB ??é gAMA ±? üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T  {fc@sdZddlZddlZddlZddlmZmZmZddlm Z ddl Z ddl Z ddl mZddlmZmZddlmZddlmZdd lmZd efd YZdS( s`distutils.command.upload Implements the Distutils 'upload' subcommand (upload package to PyPI).iN(turlopentRequestt HTTPError(tstandard_b64encode(tmd5(tDistutilsErrortDistutilsOptionError(t PyPIRCCommand(tspawn(tlogtuploadcBsUeZdZejd d gZejdgZdZdZd Zd Z RS( supload binary package to PyPItsigntsssign files to upload using gpgs identity=tisGPG identity used to sign filescCs>tj|d|_d|_d|_t|_d|_dS(Nti( Rtinitialize_optionstusernametpasswordt show_responsetFalseR tNonetidentity(tself((s0/usr/lib64/python2.7/distutils/command/upload.pyRs      cCstj||jr/|j r/tdn|j}|ikr~|d|_|d|_|d|_|d|_ n|j r|j jr|j j|_ndS(Ns.Must use --sign for --identity to have meaningRRt repositorytrealm( Rtfinalize_optionsRR Rt _read_pypircRRRRt distribution(Rtconfig((s0/usr/lib64/python2.7/distutils/command/upload.pyR&s       cCsX|jjs!d}t|nx0|jjD]"\}}}|j|||q.WdS(NsHMust create and upload files in one command (e.g. setup.py sdist upload)(Rt dist_filesRt upload_file(Rtmsgtcommandt pyversiontfilename((s0/usr/lib64/python2.7/distutils/command/upload.pytrun8s  c"Cs`tj|j\}}}}}} |s6|s6| rLtd|jn|dEkrktd|n|jrddd|g} |jrd|jg| d d +nt| d |jnt|d } z| j} Wd| j X|j j } id d 6dd6| j d6| j d6tjj|| fd6|d6|d6t| jd6dd6| jd6| jd6| jd6| jd6| jd6| jd6| jd6| jd6| jd 6| jd!6| jd"6| jd#6| jd$6}d%}|d&krRt j!\}}}|rwd'||f}qwn%|d(krwd)t j d*d+}n||d,<|jrtjj|d-t|d-jf|d.|}yjt2|}|j3}|j4}|j5rd?j6d@dA|jd@dAf} |j,| t-j.nWnVt7j8k r}!|j,t/|!t-j9n%t:k r}!|!j;}|!j4}nX|dBkr-|j,dC||ft-j.n/dD||f} |j,| t-j9t<| dS(FNsIncompatible url %sthttpthttpssunsupported schema tgpgs --detach-signs-as --local-useritdry_runtrbt file_uploads:actiont1tprotcol_versiontnametversiontcontenttfiletypeR!t md5_digests1.0tmetadata_versiontsummaryt home_pagetauthort author_emailtlicenset descriptiontkeywordstplatformt classifierst download_urltprovidestrequirest obsoletesRt bdist_rpmsbuilt for %s %st bdist_dumbs built for %stterseitcomments.asct gpg_signaturesBasic t:s3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s-- s;filename="%s"is+ Content-Disposition: form-data; name="%s"s sSubmitting %s to %ss multipart/form-data; boundary=%ss Content-typesContent-lengtht Authorizationtdatatheaderss t-iKisServer response (%s): %ssUpload failed (%s): %s(R$R%(=turlparseRtAssertionErrorR RRR'topentreadtcloseRtmetadatatget_namet get_versiontostpathtbasenameRt hexdigesttget_descriptiontget_urlt get_contacttget_contact_emailt get_licencetget_long_descriptiont get_keywordst get_platformstget_classifierstget_download_urlt get_providest get_requirest get_obsoletesR9tdistRRRtStringIOtitemst isinstancetlistttupletwritetgetvaluetannounceR tINFOtstrtlenRRtgetcodeRRtjointsocketterrortERRORRtcodeR("RR R!R"tschematnetlocturltparamstqueryt fragmentstgpg_argstfR.tmetaRFRBRbR-tidtauthtboundaryt sep_boundaryt end_boundarytbodytkeytvaluetfnRGtrequesttresulttstatustreasonRte((s0/usr/lib64/python2.7/distutils/command/upload.pyR@s$                                             &    (R R ssign files to upload using gpg(s identity=R sGPG identity used to sign files( t__name__t __module__R7Rt user_optionstboolean_optionsRRR#R(((s0/usr/lib64/python2.7/distutils/command/upload.pyR s    (t__doc__RQRpR9turllib2RRRtbase64RRIt cStringIORcthashlibRtdistutils.errorsRRtdistutils.coreRtdistutils.spawnRt distutilsR R (((s0/usr/lib64/python2.7/distutils/command/upload.pyts