ó þ¾v]c@sÓddlZddlZddlZddlZddlmZddlmZddlm Z ddl m Z ddl mZddlmZmZddlmZdd lmZd e j fd „ƒYZ dS( iÿÿÿÿN(tstandard_b64encode(tlog(tupload(tspawn(tDistutilsError(turlopentRequest(t HTTPError(turlparseRcBs;eZdZd„Zd„Zd„Zd„Zd„ZRS(sa Override default upload behavior to obtain password in a variety of different ways. cCs/ztjj|ƒWd|jdtjƒXdS(NsjWARNING: Uploading via this command is deprecated, use twine to upload instead (https://pypi.org/p/twine/)(torigRtruntannounceRtWARN(tself((s?/tmp/pip-install-vZZv26/setuptools/setuptools/command/upload.pyR s cCsPtjj|ƒ|jp"tjƒ|_|jpF|jƒpF|jƒ|_dS(N( R Rtfinalize_optionstusernametgetpasstgetusertpasswordt_load_password_from_keyringt_prompt_for_password(R ((s?/tmp/pip-install-vZZv26/setuptools/setuptools/command/upload.pyR"s    c Cs^t|jƒ\}}}}}} |s3|s3| rItd|jƒ‚n|dCkrhtd|ƒ‚n|jr»ddd|g} |jr¥d|jg| d d +nt| d |jƒnt|d ƒ} | jƒ} WdQX|j j } id d 6dd6| j ƒd6| j ƒd6t jj|ƒ| fd6|d6|d6tj| ƒjƒd6t| jƒƒd6| jƒd6| jƒd6| jƒd6| jƒd6| jƒd6| jƒd6| jƒd6| jƒd6| jƒd6| jƒd 6| jƒd!6| j ƒd"6| j!ƒd#6}d$|d%<|jr[t jj|ƒd&t|d&d ƒjƒf|d'„ƒ|ƒ}|dk r(d?j?d@dA|d@dAfƒ}|j0|t1j2ƒq(qZn/dB||f}|j0|t1j;ƒt@|ƒ‚dS(DNsIncompatible url %sthttpthttpssunsupported schema tgpgs --detach-signs-as --local-useritdry_runtrbt file_uploads:actiont1tprotocol_versiontnametversiontcontenttfiletypet pyversiont md5_digesttmetadata_versiontsummaryt home_pagetauthort author_emailtlicenset descriptiontkeywordstplatformt classifierst download_urltprovidestrequirest obsoletesttcomments.asct gpg_signaturet:tasciisBasic s3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s-- s+ Content-Disposition: form-data; name="%s"s; filename="%s"iisutf-8s sSubmitting %s to %ss multipart/form-data; boundary=%ss Content-typesContent-lengtht AuthorizationtdatatheadersiÈsServer response (%s): %st_read_pypi_responsecSsdS(N(tNone(tx((s?/tmp/pip-install-vZZv26/setuptools/setuptools/command/upload.pytªR1s t-iKsUpload failed (%s): %s(RR(ARt repositorytAssertionErrortsigntidentityRRtopentreadt distributiontmetadatatget_namet get_versiontostpathtbasenamethashlibtmd5t hexdigesttstrtget_metadata_versiontget_descriptiontget_urlt get_contacttget_contact_emailt get_licencetget_long_descriptiont get_keywordst get_platformstget_classifierstget_download_urlt get_providest get_requirest get_obsoletesRRtencodeRtdecodetiotBytesIOtitemst isinstancetlistttypettupletwritetgetvalueR RtINFOtlenRRtgetcodetmsgRtcodetOSErrortERRORt show_responsetgetattrR:tjoinR( R tcommandR!tfilenametschematnetlocturltparamstqueryt fragmentstgpg_argstfRtmetaR7t user_passtauthtboundaryt sep_boundaryt end_boundarytbodytkeytvaluettitleRkR8trequesttresulttstatustreasontettext((s?/tmp/pip-install-vZZv26/setuptools/setuptools/command/upload.pyt upload_file0s¸!                      #                        cCs>y&tdƒ}|j|j|jƒSWntk r9nXdS(sM Attempt to load password from keyring. Suppress Exceptions. tkeyringN(t __import__t get_passwordR>Rt Exception(R R((s?/tmp/pip-install-vZZv26/setuptools/setuptools/command/upload.pyR³s   cCs,ytjƒSWnttfk r'nXdS(sH Prompt for a password on the tty. Suppress Exceptions. N(RRtKeyboardInterrupt(R ((s?/tmp/pip-install-vZZv26/setuptools/setuptools/command/upload.pyR½s(t__name__t __module__t__doc__R RRŒRR(((s?/tmp/pip-install-vZZv26/setuptools/setuptools/command/upload.pyRs   ƒ (R_RHRKRtbase64Rt distutilsRtdistutils.commandRR tdistutils.spawnRtdistutils.errorsRt*setuptools.extern.six.moves.urllib.requestRRt(setuptools.extern.six.moves.urllib.errorRt(setuptools.extern.six.moves.urllib.parseR(((s?/tmp/pip-install-vZZv26/setuptools/setuptools/command/upload.pyts