
    d                         d 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
 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dS )zm
distutils.command.upload

Implements the Distutils 'upload' subcommand (upload package to a package
index).
    N)standard_b64encode)	HTTPError)urlopenRequest)urlparse)DistutilsErrorDistutilsOptionError)PyPIRCCommand)spawn)log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 r   F)r
   initialize_optionsusernamepasswordshow_responser   identity)selfs    *  /croot/python-split_1694437901252/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/python3.11/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_options2   s    &t,,,= 	 	&@   ""$$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.runD   sf     + 	,2C&s+++,0,=,H 	; 	;(GYWi::::	; 	;r!   c                    t          | j                  \  }}}}}}	|s|s|	rt          d| j        z            |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*|z  }tS          |tT                    s|g}|D ]}tW          |          tX          u r|d+|d,         z  z  }|d-         }n"t[          |          $                    d.          }|.                    |           |.                    |$                    d.                     |.                    d/           |.                    |           |.                    |           |/                                }d0|d1| j        }| 0                    |tb          j2                   d2|z  t[          tg          |                    |d3}ti          | j        ||4          }	 tk          |          }|6                                }|j7        }n`# tp          $ r} | j9        }| j7        }Y d } ~ nCd } ~ wtt          $ r3} | 0                    t[          |           tb          j;                    d } ~ ww xY w|d5k    r~| 0                    d6|d7|tb          j2                   | j<        rO| =                    |          }!d8>                    d9|!d9f          }| 0                    |tb          j2                   d S d S d:|d7|}| 0                    |tb          j;                   t          |          );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_fileL   sF    T_%% 	6VUI 	JU 	Ji 	J !6!HIII*** !6!?@@@ 9 	(h?H} @!/ ?1(,( ( ( (
 $	ffhhGGGIIIIAGGIIII )}  DMMOO t'')) ((227;     t++--!" #$ d&&((%& D2244'( t'')))* 44466+, ))++-. **,,/0 4//1112 !1133))++))++++--;  @ Y )>(C(C(E(E 	 	$K"$/K$8$8$B$B$D$D[!!    9 	3h'.. 3!)+)9)9()C)Cf)L)*)3_%3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
 ]S(4=8@@II	 ,Y77>>wGGG I 8??7#;#;;#i/z||**,, 	" 	"JCCcIEeT**   	" 	";;%''.q99E!!HEEJJ--g66E

<(((

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

;'''

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

<   }}'/xxAc38$$$ ?I!#d))nn!
 
 $/")+ + +		W%%F^^%%FZFF 	 	 	VFUFFFFFF 	 	 	MM#a&&#),,,	 S==MMMG($ $ $! -//77ii4 :;;c38,,,,,- -  /5ffff=CMM#sy))) %%%sT   C C6 J
J$#J$:LLL*T< <
VUV&.VVN)__name__
__module____qualname__rE   r
   user_optionsboolean_optionsr   r%   r0   r+    r!   r    r   r      s        1K -	+=1
 
L $3vh>O  7 7 7$; ; ;K& K& K& K& K&r!   r   )__doc__r^   rt   hashlibbase64r   urllib.errorr   urllib.requestr   r   urllib.parser   distutils.errorsr   r	   distutils.corer
   distutils.spawnr   	distutilsr   getattrrn   r   r   r!   r    <module>r      sH    
			 				  % % % % % % " " " " " " + + + + + + + + ! ! ! ! ! ! A A A A A A A A ( ( ( ( ( ( ! ! ! ! ! !       ''5$//WWh55 )T::  y& y& y& y& y&] y& y& y& y& y&r!   