_dCdZddlZddlZddlZddlZddlmZddlmZm Z m Z ddl m Z ddl mZmZddlmZdd lmZeed deed deed dd ZGddeZy)zm distutils.command.upload Implements the Distutils 'upload' subcommand (upload package to a package index). N)standard_b64encode)urlopenRequest HTTPError)urlparse)DistutilsErrorDistutilsOptionError) PyPIRCCommand)spawnmd5sha256blake2b) md5_digest sha256_digestblake2_256_digestcjeZdZdZej ddgzZej dgzZdZdZdZ dZ y ) uploadzupload binary package to PyPI)signszsign files to upload using gpg)z identity=izGPG identity used to sign filesrcttj|d|_d|_d|_d|_d|_y)NrF)r initialize_optionsusernamepassword show_responseridentity)selfs F/usr/lib/python3/dist-packages/setuptools/_distutils/command/upload.pyrzupload.initialize_options's4((.    cltj||jr|js t d|j }|ik7r(|d|_|d|_|d|_|d|_ |js3|jjr|jj|_yyy)Nz.Must use --sign for --identity to have meaningrr repositoryrealm) r finalize_optionsrrr _read_pypircrrr#r$ distribution)rconfigs r r%zupload.finalize_options/s&&t, ==&'WX X""$ R<":.DM":.DM$\2DODJ}}!2!2!;!; --66DM"<}r!c|jjs d}t||jjD]\}}}|j|||y)NzHMust create and upload files in one command (e.g. setup.py sdist upload))r' dist_filesr upload_file)rmsgcommand pyversionfilenames r runz upload.run?s\  ++/ 's+ +,0,=,=,H,H ; (GY   Wi : ;r!c t|j\}}}}}} |s|s| rtd|jz|dvrtd|z|jr:ddd|g} |jrd|jg| ddt | |j t|d } | j} | j|jj} id d d dd| jd| jdtjj!|| fd|d|ddd| j#d| j%d| j'd| j)d| j+d| j-d| j/d| j1d| j3| j5| j7| j9| j;d}d |d!<t<j?D]"\}}| || jA||<$|jrMt|d"zd 5} tjj!|d"z| jf|d#<ddd|jDd$z|jFzjId%}d&tK|jMd%z}d'}d(|jId%z}|d)z}tOjP}|j?D]\}}d*|z}tS|tTs|g}|D]}tW|tXur|d+|d,zz }|d-}nt[|jId.}|j]||j]|jId.|j]d/|j]||j]||j_}d0ja||j}|jc|tdjfd1|zt[ti||d2}tk|j||3} tm|}|jo}|jp}|d4k(r|jcd5ja||tdjf|jzrF|j}}!d6jd7|!d7f}|jc|tdjfyyd8ja||}|jc|tdjxt|#| jwxYw#tB$rYYwxYw#1swYxYw#tr$r#} | jt}| jp}Yd} ~ d} ~ wtv$r/} |jct[| tdjxd} ~ wwxYw)9NzIncompatible url %s)httphttpszunsupported schema gpgz --detach-signz-az --local-userr)dry_runrbz:action file_uploadprotocol_version1nameversioncontentfiletyper.metadata_versionz1.0summary home_pageauthor author_emaillicense descriptionkeywordsplatform classifiers) download_urlprovidesrequires obsoletesrcommentz.asc gpg_signature:asciizBasic z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s-- z+ Content-Disposition: form-data; name="%s"z; filename="%s"rzutf-8s zSubmitting {} to {}z multipart/form-data; boundary=%s)z Content-typezContent-length Authorization)dataheaderszServer response ({}): {} zK---------------------------------------------------------------------------zUpload failed ({}): {})Arr#AssertionErrorrrr r5openreadcloser'metadataget_name get_versionospathbasenameget_descriptionget_url get_contactget_contact_email get_licenceget_long_description get_keywords get_platformsget_classifiersget_download_url get_provides get_requires get_obsoletes_FILE_CONTENT_DIGESTSitems hexdigest ValueErrorrrencoderdecodeioBytesIO isinstancelisttypetuplestrwritegetvalueformatannounceloggingINFOlenrrgetcoder,rcodeOSErrorERRORr_read_pypi_responsejoinr )"rr-r.r/schemanetlocurlparamsquery fragmentsgpg_argsfr<metarR digest_name digest_cons user_passauthboundary sep_boundary end_boundarybodykeyvaluetitler,rSrequestresultstatusreasonetexts" r r+zupload.upload_fileIs8@8Q5VUI Ui !6!HI I * * !6!?@ @ 99h?H}}!/ ?1 (DLL 1 4  ffhG GGI  )) }   DMMO  t'')   ((2G<        t++-    d&&( D224! " t'')# $ 4446% & ))+' ( **,) * 4//1+ ,!113))+))+++-5 :Y)>(C(C(E  $K" $/$8$B$B$D[!   99h'. X!)+)9)9()Cf)Laffh(W_% X]]S(4==8@@I ,Y7>>wGGI 8??7#;; #i/ zz|**, "JCCcIEeT* ";%'.q99E!!HEJ--g6E <( 5<<01 ;' 5! "  " < }}#**8T__E c7<<(?I!#d)n!  $//gF W%F^^%FZZF S= MM*11&&A7<< !!//7ii4 :; c7<<0" +11&&AC MM#w}} - % %_ GGIP    X X` VVFUUF  MM#a&'-- 0  sN U&U)6U9('VU&) U65U69V W(V-- W(9*W##W(N) __name__ __module__ __qualname__rDr user_optionsboolean_optionsrr%r0r+r!r rrsK1K --7=1L $33vh>O7 ;E&r!r)__doc__r]rshashlibr~base64rurllib.requestrrr urllib.parsererrorsr r corer r getattrrmrrr!r rsi %66!9  '5$/Wh5 )T:q&]q&r!