b-Qc@s2dZddlZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z ddl mZyddlmZWn!ek rddlmZnXddlmZmZmZmZejd kZerd Znd Zd d ZdefdYZdS(spupload_docs Implements a Distutils 'upload_docs' subcommand (upload documentation to PyPI's pythonhosted.org). iN(tstandard_b64encode(titer_entry_points(tlog(tDistutilsOptionError(tupload(thttplibturlparsetunicodet iteritemst3tsurrogateescapetstrictsutf-8cCs#t|tr|j|tS|S(N(t isinstanceRtencodeterrors(tstencoding((sB/usr/lib/python2.7/site-packages/setuptools/command/upload_docs.pytb&st upload_docscBs{eZdZdddejfddgZejZdZd efgZ d Z d Z d Z d Z dZRS(sUpload documentation to PyPIs repository=trsurl of repository [default: %s]s show-responses&display full response text from servers upload-dir=sdirectory to uploadcCs1|jdkr-xtddD]}tSWndS(Nsdistutils.commandst build_sphinx(t upload_dirtNoneRtTrue(tselftep((sB/usr/lib/python2.7/site-packages/setuptools/command/upload_docs.pyt has_sphinx9sRcCs#tj|d|_d|_dS(N(Rtinitialize_optionsRRt target_dir(R((sB/usr/lib/python2.7/site-packages/setuptools/command/upload_docs.pyR@s  cCstj||jdkrs|jrF|jd}|j|_q|jd}tj j |j d|_n|j d|j|_|j d|jdS(NRtbuildtdocsRsUsing upload directory %s(Rtfinalize_optionsRRRtget_finalized_commandtbuilder_target_dirRtostpathtjoint build_basetensure_dirnametannounce(RRR((sB/usr/lib/python2.7/site-packages/setuptools/command/upload_docs.pyREs    c Cstj|d}z|j|jxtj|jD]\}}}||jkrs| rstd|jnxj|D]b}tjj||}|t |jj tjj }tjj||} |j || qzWq8WWd|j XdS(Ntws'no files found in upload directory '%s'(tzipfiletZipFiletmkpathRR"twalkRR#R$tlentlstriptseptwritetclose( Rtfilenametzip_filetroottdirstfilestnametfulltrelativetdest((sB/usr/lib/python2.7/site-packages/setuptools/command/upload_docs.pytcreate_zipfileSs" "cCsx!|jD]}|j|q Wtj}|jjj}tjj |d|}z|j ||j |Wdt j |XdS(Ns%s.zip(tget_sub_commandst run_commandttempfiletmkdtempt distributiontmetadatatget_nameR"R#R$R;t upload_filetshutiltrmtree(Rtcmd_namettmp_dirR7R3((sB/usr/lib/python2.7/site-packages/setuptools/command/upload_docs.pytrunds  cCsZt|d}|j}|j|jj}idd6|jd6tjj||fd6}t |j d|j }t |}t jd(kr|jd}nd |}d }t d t |} | t d } g} xt|D]\} } d | }t| tgkr.| g} nx| D]}t|tkrl|d|d7}|d}n t |}| j| | jt || jt d| j||r5|dt dkr5| jt dq5q5WqW| j| | jt dt dj| } |jd|jtjt|j\}}}}}}|dkrtj|}n.|dkrtj|}ntd|d}tj}yu|j|jd||j dd||j dt!t"| |j d||j#|j$| Wn>t%j&k rrt j'd}|jt!|tj(dSX|j)}|j*dkr|jd |j*|j+ftjnz|j*d!kr |j,d"}|dkrd#|j}n|jd$|tjn#|jd%|j*|j+ftj(|j.rVd&d'|jd&d'fGHndS()Ntrbt doc_uploads:actionR7tcontentt:itasciisBasic s3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s--s* Content-Disposition: form-data; name="%s"s; filename="%s"iis is s tsSubmitting documentation to %sthttpthttpssunsupported schema tPOSTs Content-types multipart/form-data; boundary=%ssContent-lengtht AuthorizationisServer response (%s): %si-tLocationshttps://pythonhosted.org/%s/sUpload successful. Visit %ssUpload failed (%s): %st-iK(i(/topentreadR1R@RARBR"R#tbasenameRtusernametpasswordRtsyst version_infotdecodeRttypettupletappendR$R't repositoryRtINFORRtHTTPConnectiontHTTPSConnectiontAssertionErrortconnectt putrequestt putheadertstrR-t endheaderstsendtsocketterrortexc_infotERRORt getresponsetstatustreasont getheaderRt show_response(RR2tfRKtmetatdatat credentialstauthtboundaryt sep_boundaryt end_boundarytbodytkeytvaluesttitletvaluetschematnetlocturltparamstqueryt fragmentstconntloglevelteRtlocation((sB/usr/lib/python2.7/site-packages/setuptools/command/upload_docs.pyRCrs               !              N(s show-responseNs&display full response text from server(s upload-dir=Nsdirectory to upload(t__name__t __module__t descriptionRtDEFAULT_REPOSITORYRt user_optionstboolean_optionsRt sub_commandsRRR;RHRC(((sB/usr/lib/python2.7/site-packages/setuptools/command/upload_docs.pyR,s        (t__doc__R"RkR)R>RZRDtbase64Rt pkg_resourcesRt distutilsRtdistutils.errorsRtdistutils.command.uploadRt ImportErrortsetuptools.command.uploadtsetuptools.compatRRRRtversiont _IS_PYTHON3RRR(((sB/usr/lib/python2.7/site-packages/setuptools/command/upload_docs.pyts*       "