Ë
    ˜šãj­  ã                   óÒ   — d Z ddlZddlZddlZddlmZ ddlmZmZm	Z	 ddl
mZ ddlmZmZ ddlmZ ddlmZ dd	lmZ  eed
d«       eedd«       eedd«      dœZ G d„ de«      Zy)zm
distutils.command.upload

Implements the Distutils 'upload' subcommand (upload package to a package
index).
é    N)Ústandard_b64encode)ÚurlopenÚRequestÚ	HTTPError)Úurlparse)ÚDistutilsErrorÚDistutilsOptionError)ÚPyPIRCCommand)Úspawn)ÚlogÚmd5Úsha256Úblake2b)Ú
md5_digestÚsha256_digestÚblake2_256_digestc                   ój   — e Zd ZdZej
                  ddgz   Zej                  dgz   Zd„ Zd„ Zd„ Z	d„ Z
y	)
Úuploadzupload binary package to PyPI)ÚsignÚszsign files to upload using gpg)z	identity=ÚizGPG identity used to sign filesr   c                 ót   — t        j                  | «       d| _        d| _        d| _        d| _        d | _        y )NÚ r   F)r
   Úinitialize_optionsÚusernameÚpasswordÚshow_responser   Úidentity)Úselfs    úo/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/setuptools/_distutils/command/upload.pyr   zupload.initialize_options)   s4   € Ü×(Ñ(¨Ô.ØˆŒØˆŒØˆÔØˆŒ	Øˆ�ó    c                 ól  — t        j                  | «       | j                  r| j                  st	        d«      ‚| j                  «       }|i k7  r(|d   | _        |d   | _        |d   | _        |d   | _	        | j                  s3| j                  j                  r| j                  j                  | _        y y y )Nz.Must use --sign for --identity to have meaningr   r   Ú
repositoryÚrealm)r
   Úfinalize_optionsr   r   r	   Ú_read_pypircr   r   r#   r$   Údistribution)r   Úconfigs     r    r%   zupload.finalize_options1   s¤   € Ü×&Ñ& tÔ,Ø�=Š= §¢Ü&Ø@óð ð ×"Ñ"Ó$ˆØ�RŠ<Ø" :Ñ.ˆDŒMØ" :Ñ.ˆDŒMØ$ \Ñ2ˆDŒOØ ™ˆDŒJð �}Š} ×!2Ñ!2×!;Ò!;Ø ×-Ñ-×6Ñ6ˆD�Mð "<ˆ}r!   c                 ó®   — | j                   j                  sd}t        |«      ‚| j                   j                  D ]  \  }}}| j                  |||«       Œ y )NzHMust create and upload files in one command (e.g. setup.py sdist upload))r'   Ú
dist_filesr	   Úupload_file)r   ÚmsgÚcommandÚ	pyversionÚfilenames        r    Úrunz
upload.runC   sW   € Ø× Ñ ×+Ò+ð2ˆCä& sÓ+Ð+Ø,0×,=Ñ,=×,HÑ,Hò 	;Ñ(ˆG�Y Ø×Ñ˜W i°Õ:ñ	;r!   c                 óš  — t        | j                  «      \  }}}}}}	|s|s|	rt        d| j                  z  «      ‚|dvrt        d|z   «      ‚| j                  r:ddd|g}
| j                  rd| j                  g|
dd t        |
| j                  ¬	«       t        |d
«      }	 |j                  «       }|j                  «        | j                  j                  }i dd“dd“d|j                  «       “d|j                  «       “dt        j                  j!                  |«      |f“d|“d|“dd“d|j#                  «       “d|j%                  «       “d|j'                  «       “d|j)                  «       “d|j+                  «       “d|j-                  «       “d|j/                  «       “d|j1                  «       “d|j3                  «       “|j5                  «       |j7                  «       |j9                  «       |j;                  «       dœ¥}d |d!<   t<        j?                  «       D ]"  \  }}|€Œ		  ||«      jA                  «       ||<   Œ$ | j                  rMt        |d"z   d
«      5 }t        j                  j!                  |«      d"z   |j                  «       f|d#<   d d d «       | jD                  d$z   | jF                  z   jI                  d%«      }d&tK        |«      jM                  d%«      z   }d'}d(|jI                  d%«      z   }|d)z   }tO        jP                  «       }|j?                  «       D ]³  \  }}d*|z  }tS        |tT        «      s|g}|D ]‘  }tW        |«      tX        u r|d+|d,   z  z  }|d-   }nt[        |«      jI                  d.«      }|j]                  |«       |j]                  |jI                  d.«      «       |j]                  d/«       |j]                  |«       Œ“ Œµ |j]                  |«       |j_                  «       }d0|›d1| j                  ›�}| ja                  |tb        jd                  «       d2|z  t[        tg        |«      «      |d3œ}ti        | j                  ||¬4«      }	 tk        |«      }|jm                  «       }|jn                  }|d5k(  ry| ja                  d6|›d7|›�tb        jd                  «       | jx                  rF| j{                  «      }!d8j}                  d9|!d9f«      }| ja                  |tb        jd                  «       y y d:|›d7|›�}| ja                  |tb        jv                  «       t        |«      ‚# |j                  «        w xY w# tB        $ r Y �Œ;w xY w# 1 sw Y   �ŒËxY w# tp        $ r#} | jr                  }| jn                  }Y d } ~ �Œ
d } ~ wtt        $ r/} | ja                  t[        | «      tb        jv                  «       ‚ d } ~ ww xY w);NzIncompatible url %s)ÚhttpÚhttpszunsupported schema Úgpgz--detach-signz-az--local-useré   )Údry_runÚrbz:actionÚfile_uploadÚprotocol_versionÚ1ÚnameÚversionÚcontentÚfiletyper.   Úmetadata_versionz1.0ÚsummaryÚ	home_pageÚauthorÚauthor_emailÚlicenseÚdescriptionÚkeywordsÚplatformÚclassifiers)Údownload_urlÚprovidesÚrequiresÚ	obsoletesr   Úcommentz.ascÚgpg_signatureú:ÚasciizBasic z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s   
--s   --
z+
Content-Disposition: form-data; name="%s"z; filename="%s"r   é   zutf-8s   

zSubmitting z to z multipart/form-data; boundary=%s)zContent-typezContent-lengthÚAuthorization)ÚdataÚheaderséÈ   zServer response (z): ú
zK---------------------------------------------------------------------------zUpload failed ()@r   r#   ÚAssertionErrorr   r   r   r6   ÚopenÚreadÚcloser'   ÚmetadataÚget_nameÚget_versionÚosÚpathÚbasenameÚget_descriptionÚget_urlÚget_contactÚget_contact_emailÚget_licenceÚget_long_descriptionÚget_keywordsÚget_platformsÚget_classifiersÚget_download_urlÚget_providesÚget_requiresÚget_obsoletesÚ_FILE_CONTENT_DIGESTSÚitemsÚ	hexdigestÚ
ValueErrorr   r   Úencoder   ÚdecodeÚioÚBytesIOÚ
isinstanceÚlistÚtypeÚtupleÚstrÚwriteÚgetvalueÚannouncer   ÚINFOÚlenr   r   Úgetcoder,   r   ÚcodeÚOSErrorÚERRORr   Ú_read_pypi_responseÚjoinr   )"r   r-   r.   r/   ÚschemaÚnetlocÚurlÚparamsÚqueryÚ	fragmentsÚgpg_argsÚfr=   ÚmetarS   Údigest_nameÚdigest_consÚ	user_passÚauthÚboundaryÚsep_boundaryÚend_boundaryÚbodyÚkeyÚvalueÚtitler,   rT   ÚrequestÚresultÚstatusÚreasonÚeÚtexts"                                     r    r+   zupload.upload_fileK   s²  € ô �T—_‘_Ó%ñ 	6ˆ�˜˜V U¨Iá‘U™iÜ Ð!6¸¿¹Ñ!HÓIÐIàÐ*Ñ*Ü Ð!6¸Ñ!?Ó@Ð@ð �9Š9Ø˜°°hÐ?ˆHØ�}Š}Ø!/°·±Ð ?�˜˜1�Ü�(ØŸ,™,õ(ô
 �˜$Óˆð	Ø—f‘f“hˆGà�G‰GŒIà× Ñ ×)Ñ)ˆðà�}ðð  ðð �D—M‘M“Oðð �t×'Ñ'Ó)ðð œŸ™×(Ñ(¨Ó2°7Ð;ðð ˜ðð ˜ðð  ðð  �t×+Ñ+Ó-ð!ð" ˜Ÿ™›ð#ð$ �d×&Ñ&Ó(ð%ð& ˜D×2Ñ2Ó4ð'ð( �t×'Ñ'Ó)ð)ð* ˜4×4Ñ4Ó6ð+ð, ˜×)Ñ)Ó+ð-ð. ˜×*Ñ*Ó,ð/ð0 ˜4×/Ñ/Ó1ð1ð2 !×1Ñ1Ó3à×)Ñ)Ó+Ø×)Ñ)Ó+Ø×+Ñ+Ó-ò;ˆð@ ˆˆY‰ô )>×(CÑ(CÓ(Eò 	Ñ$ˆK˜ØÐ"ØðÙ$/°Ó$8×$BÑ$BÓ$D��[Ò!ð		ð �9Š9Ü�h Ñ'¨Ó.ð 3°!Ü)+¯©×)9Ñ)9¸(Ó)CÀfÑ)LØ)*¯©«ð)3��_Ñ%÷3ð
 —]‘] SÑ(¨4¯=©=Ñ8×@Ñ@ÀÓIˆ	ð Ô,¨YÓ7×>Ñ>¸wÓGÑGˆð IˆØ  8§?¡?°7Ó#;Ñ;ˆØ# iÑ/ˆÜ�z‰z‹|ˆØŸ*™*›,ò 	"‰JˆC�ØCÀcÑIˆEä˜e¤TÔ*Ø˜�Øò 	"�Ü˜“;¤%Ñ'ØÐ.°°q±Ñ9Ñ9�EØ! !™H‘Eä ›J×-Ñ-¨gÓ6�EØ—
‘
˜<Ô(Ø—
‘
˜5Ÿ<™<¨Ó0Ô1Ø—
‘
˜;Ô'Ø—
‘
˜5Õ!ñ	"ð	"ð 	�
‰
�<Ô Ø�}‰}‹‰â'/°·²ÐAˆØ�‰�cœ3Ÿ8™8Ô$ð ?ÀÑIÜ!¤# d£)›nØ!ñ
ˆô ˜$Ÿ/™/°Ø")ô+ˆð		Ü˜WÓ%ˆFØ—^‘^Ó%ˆFØ—Z‘ZˆFð �SŠ=Ø�MŠMºÁÐGÜŸ(™(ô$à×!Ò!Ø×/Ñ/°Ó7�Ø—i‘i ¨4°Ð :Ó;�Ø—‘˜c¤3§8¡8Õ,ð "ð ò /5±fÐ=ˆCØ�M‰M˜#œsŸy™yÔ)Ü  Ó%Ð%øðg �G‰G�IûôV ò âðú÷
3ñ 3ûôd ò 	Ø—V‘VˆFØ—U‘UŽFûÜò 	Ø�M‰Mœ#˜a›&¤#§)¡)Ô,Øûð	úsN   Â T6 È&UÉ6UÑ'U( Ô6UÕ	UÕUÕU%Õ(	W
Õ1VÖW
Ö*W×W
N)Ú__name__Ú
__module__Ú__qualname__rE   r
   Úuser_optionsÚboolean_optionsr   r%   r0   r+   © r!   r    r   r      sM   „ à1€Kà ×-Ñ-ð	+à=ð1
ñ 
€Lð $×3Ñ3°v°hÑ>€Oòò7ò$;óK&r!   r   )Ú__doc__r^   rt   ÚhashlibÚbase64r   Úurllib.requestr   r   r   Úurllib.parser   Údistutils.errorsr   r	   Údistutils.corer
   Údistutils.spawnr   Ú	distutilsr   Úgetattrrn   r   r¥   r!   r    ú<module>r°      si   ðñó 
Û 	Û Ý %ß 6Ñ 6Ý !ß AÝ (Ý !Ý ñ ˜' 5¨$Ó/Ù˜W h°Ó5Ù  ¨)°TÓ:ñÐ ôy&ˆ]õ y&r!   