ž à’Re—c@sdZddlZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z ddl mZddlmZddlmZmZmZmZmZerÒd nd Zd d d „ZGdd„deƒZdS(upupload_docs Implements a Distutils 'upload_docs' subcommand (upload documentation to PyPI's pythonhosted.org). iN(ustandard_b64encode(uiter_entry_points(ulog(uDistutilsOptionError(uupload(uhttplibuurlparseuunicodeu iteritemsuPY3usurrogateescapeustrictuutf-8cCs#t|tƒr|j|tƒS|S(N(u isinstanceuunicodeuencodeuerrors(usuencoding((u7/tmp/pip-k8wh6o-build/setuptools/command/upload_docs.pyubsubcBs™|EeZdZdZdddejfddgZejZd d „Z d e fgZ d d „Z dd„Z dd„Z dd„Zdd„ZdS(u upload_docsuUpload documentation to PyPIu repository=uruurl of repository [default: %s]u show-responseu&display full response text from serveru upload-dir=udirectory to uploadcCs1|jdkr-xtddƒD]}dSWndS(Nudistutils.commandsu build_sphinxT(u upload_diruNoneuiter_entry_pointsuTrue(uselfuep((u7/tmp/pip-k8wh6o-build/setuptools/command/upload_docs.pyu has_sphinx0suupload_docs.has_sphinxu build_sphinxcCs#tj|ƒd|_d|_dS(N(uuploaduinitialize_optionsuNoneu upload_diru target_dir(uself((u7/tmp/pip-k8wh6o-build/setuptools/command/upload_docs.pyuinitialize_options7s  uupload_docs.initialize_optionscCs¤tj|ƒ|jdkrs|jƒrF|jdƒ}|j|_qŒ|jdƒ}tj j |j dƒ|_n|j dƒ|j|_|j d|jƒdS(Nu build_sphinxubuildudocsu upload_diruUsing upload directory %s(uuploadufinalize_optionsu upload_diruNoneu has_sphinxuget_finalized_commandubuilder_target_diru target_diruosupathujoinu build_baseuensure_dirnameuannounce(uselfu build_sphinxubuild((u7/tmp/pip-k8wh6o-build/setuptools/command/upload_docs.pyufinalize_options<s    uupload_docs.finalize_optionsc Csýtj|dƒ}zÙ|j|jƒxÂtj|jƒD]®\}}}||jkrs| rstd|jƒ‚nxp|D]h}tjj||ƒ}|t |jƒd…j tjj ƒ}tjj||ƒ} |j || ƒqzWq8WWd|j ƒXdS(Nuwu'no files found in upload directory '%s'(uzipfileuZipFileumkpathu target_diruosuwalkuDistutilsOptionErrorupathujoinulenulstripusepuwriteuclose( uselfufilenameuzip_fileurootudirsufilesunameufullurelativeudest((u7/tmp/pip-k8wh6o-build/setuptools/command/upload_docs.pyucreate_zipfileJs" (uupload_docs.create_zipfilec CsŽx!|jƒD]}|j|ƒq Wtjƒ}|jjjƒ}tjj |d|ƒ}z|j |ƒ|j |ƒWdt j |ƒXdS(Nu%s.zip(uget_sub_commandsu run_commandutempfileumkdtempu distributionumetadatauget_nameuosupathujoinucreate_zipfileu upload_fileushutilurmtree(uselfucmd_nameutmp_dirunameuzip_file((u7/tmp/pip-k8wh6o-build/setuptools/command/upload_docs.pyurun[s  uupload_docs.runcCslt|dƒ}|jƒ}|jƒ|jj}idd6|jƒd6tjj|ƒ|fd6}t |j d|j ƒ}t |ƒ}t r¢|jdƒ}nd|}d }t d ƒt |ƒ} | t d ƒ} g} xt|ƒD]÷\} } d | }t| tƒr| g} nxÃ| D]»}t|ƒtkrZ|d |d7}|d}n t |ƒ}| j| ƒ| jt |ƒƒ| jt dƒƒ| j|ƒ|r#|d&d…t dƒkr#| jt dƒƒq#q#WqëW| j| ƒ| jt dƒƒt dƒj| ƒ} |jd|jtjƒt|jƒ\}}}}}}| rk| rk| sqt‚|dkrtj|ƒ}n.|dkr­tj|ƒ}ntd|ƒ‚d}y{|jƒ|j d|ƒd|}|j!d|ƒ|j!dt"t#| ƒƒƒ|j!d|ƒ|j$ƒ|j%| ƒWnBt&j'k r‚t(j)ƒd}|jt"|ƒtj*ƒdSYnX|j+ƒ}|j,dkrÄ|jd|j,|j-ftjƒnz|j,dkr|j.d ƒ}|dkrd!|jƒ}n|jd"|tjƒn#|jd#|j,|j-ftj*ƒ|j0rht1d$d%|jƒd$d%ƒndS('Nurbu doc_uploadu:actionunameucontentu:uasciiuBasic u3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254u --u--u* Content-Disposition: form-data; name="%s"u; filename="%s"iiu u u uuSubmitting documentation to %suhttpuhttpsuunsupported schema uPOSTu multipart/form-data; boundary=%su Content-typeuContent-lengthu AuthorizationiÈuServer response (%s): %si-uLocationuhttps://pythonhosted.org/%s/uUpload successful. Visit %suUpload failed (%s): %su-iKiÿÿÿÿ(2uopenureaducloseu distributionumetadatauget_nameuosupathubasenameubuusernameupasswordustandard_b64encodeuPY3udecodeu iteritemsu isinstanceulistutypeutupleuappendujoinuannounceu repositoryuloguINFOuurlparseuAssertionErroruhttplibuHTTPConnectionuHTTPSConnectionuconnectu putrequestu putheaderustrulenu endheadersusendusocketuerrorusysuexc_infouERRORu getresponseustatusureasonu getheaderuNoneu show_responseuprint(uselfufilenameufucontentumetaudatau credentialsuauthuboundaryu sep_boundaryu end_boundaryubodyukeyuvaluesutitleuvalueuschemaunetlocuurluparamsuqueryu fragmentsuconnu content_typeueurulocation((u7/tmp/pip-k8wh6o-build/setuptools/command/upload_docs.pyu upload_fileis             "  !             uupload_docs.upload_fileN(u show-responseNu&display full response text from server(u upload-dir=Nudirectory to upload(u__name__u __module__u __qualname__u descriptionuuploaduDEFAULT_REPOSITORYuNoneu user_optionsuboolean_optionsu has_sphinxu sub_commandsuinitialize_optionsufinalize_optionsucreate_zipfileurunu upload_file(u __locals__((u7/tmp/pip-k8wh6o-build/setuptools/command/upload_docs.pyu upload_docs#s        u upload_docs(u__doc__uosusocketuzipfileutempfileusysushutilubase64ustandard_b64encodeu pkg_resourcesuiter_entry_pointsu distutilsulogudistutils.errorsuDistutilsOptionErrorudistutils.command.uploaduuploadusetuptools.compatuhttplibuurlparseuunicodeu iteritemsuPY3uerrorsubu upload_docs(((u7/tmp/pip-k8wh6o-build/setuptools/command/upload_docs.pyus      (