
    7fE                         d Z ddlZddlZddlZddlZddlm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 dd	lmZ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d ZdS )zm
distutils.command.upload

Implements the Distutils 'upload' subcommand (upload package to a package
index).
    N)standard_b64encode)urlparse)	HTTPErrorRequesturlopen   )always_iterable)PyPIRCCommand)DistutilsErrorDistutilsOptionError)spawnmd5sha256blake2b)
md5_digestsha256_digestblake2_256_digestc                   X    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
d	S )
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 | _        d S )N F)r
   initialize_optionsusernamepasswordshow_responser   identity)selfs    b/home/feoh/.local/pipx/shared/lib/python3.11/site-packages/setuptools/_distutils/command/upload.pyr   zupload.initialize_options(   s;    (..."	    c                 T   t          j        |            | j        r| j        st	          d          |                                 }|i k    r4|d         | _        |d         | _        |d         | _        |d         | _	        | j        s| j
        j        r| j
        j        | _        d S d S d S )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_options0   s    &t,,,= 	Y 	Y&'WXXX""$$R<<":.DM":.DM$\2DODJ } 	7!2!; 	7 -6DMMM	7 	7 	7 	7r"   c                     | j         j        sd}t          |          | j         j        D ]\  }}}|                     |||           d S )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.run@   sk     + 	,/  's+++,0,=,H 	; 	;(GYWi::::	; 	;r"   c                    t          | j                  \  }}}}}}	|s|s|	rt          d| j                   |dvrt          d|z             | j        r1ddd|g}
| j        rd| j        g|
dd<   t          |
| j        	           t          |d
          }	 |                                }|	                                 n# |	                                 w xY w| j
        j        }i ddddd|                                d|                                dt          j                            |          |fd|d|ddd|                                d|                                d|                                d|                                d|                                d|                                d|                                d|                                d|                                |                                |                                |                                |                                d}d |d!<   t<                                          D ]9\  }}|	  ||                                           ||<   *# tB          $ r Y 6w xY w| j        rdt          |d"z   d
          5 }t          j                            |          d"z   |                                f|d#<   d d d            n# 1 swxY w Y   | j"        d$z   | j#        z   $                    d%          }d&tK          |          &                    d%          z   }d'}d(|$                    d%          z   }|d)z   }tO          j(                    }|                                D ]\  }}d*| d+}tS          |          D ]}tU          |          tV          u r|d,|d-          d+z  }|d.         }n"tY          |          $                    d/          }|-                    |           |-                    |$                    d/                     |-                    d0           |-                    |           |-                    |           |.                                }d1| d2| j         }| /                    |t`          j1                   d3| tY          te          |                    |d4}tg          | j        ||5          }	 ti          |          }|5                                }|j6        } n`# tn          $ r}!|!j8        }|!j6        } Y d }!~!nCd }!~!wtr          $ r3}!| /                    tY          |!          t`          j:                    d }!~!ww xY w|d6k    r~| /                    d7| d8|  t`          j1                   | j;        rO| <                    |          }"d9=                    d:|"d:f          }| /                    |t`          j1                   d S d S d;| d8|  }| /                    |t`          j:                   t}          |          )<NzIncompatible url )httphttpszunsupported schema gpgz--detach-signz-az--local-userr   )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=""z; filename="r      zutf-8s   

zSubmitting z to zmultipart/form-data; boundary=)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make_iterabletypetuplestrwritegetvalueannounceloggingINFOlenr   r   getcoder-   r   codeOSErrorERRORr   _read_pypi_responsejoinr   )#r    r.   r/   r0   schemanetlocurlparamsquery	fragmentsgpg_argsfr=   metarT   digest_namedigest_cons	user_passauthboundarysep_boundaryend_boundarybodykeyvaluestitlevaluer-   rU   requestresultstatusreasonetexts#                                      r!   r,   zupload.upload_fileJ   sA   8@8Q8Q5VUI 	HU 	Hi 	H !FT_!F!FGGG*** !6!?@@@ 9 	2h?H} @!/ ?1(DL1111 4  	ffhhGGGIIIIAGGIIII )
}
 

 DMMOO
 t''))
 ((22G<
 
 
 
 t++--
 
 d&&((
  D2244!
" t''))#
$ 44466%
& ))++'
( **,,)
* 4//11+
, !1133))++))++++--5
 
 
: Y )>(C(C(E(E 	 	$K"$/K$8$8$B$B$D$D[!!    9 	Xh'.. X!)+)9)9()C)Cf)Laffhh(W_%X X X X X X X X X X X X X X X ]S(4=8@@II	 ,Y77>>wGGG I 8??7#;#;;#i/z||::<< 	" 	"KCGGGGE&v.. 	" 	";;%''7E!H7777E!!HEEJJ--g66E

<(((

5<<00111

;'''

5!!!!	" 	

<   }};H;;$/;;c7<((( HXGG!#d))nn!
 
 $/gFFF		W%%F^^%%FZFF 	 	 	VFUFFFFFF 	 	 	MM#a&&'-000	 S==MMAfAAAA7<PPP! 1//77ii4 :;;c7<000001 1
 8F77v77CMM#w}--- %%%sT   C C6 J
J$#J$:LLL*T3 3
V=UV.VVN)__name__
__module____qualname__rE   r
   user_optionsboolean_optionsr   r&   r1   r,    r"   r!   r   r      s        1K -7=1 L
 $3vh>O  7 7 7 ; ; ;@& @& @& @& @&r"   r   c                 R    | d gS t          | t          t          t          f          S )N)	base_type)r	   bytesrz   ry   )r   s    r!   rw   rw      s(    ~v6eS%-@AAAAr"   )__doc__hashlibru   r~   r_   base64r   urllib.parser   urllib.requestr   r   r   
_itertoolsr	   corer
   errorsr   r   r   getattrro   r   rw   r   r"   r!   <module>r      sX     				  				 % % % % % % ! ! ! ! ! ! 6 6 6 6 6 6 6 6 6 6 ( ( ( ( ( (             9 9 9 9 9 9 9 9      
 ''5$//WWh55 )T::  l& l& l& l& l&] l& l& l&^B B B B Br"   