
    eXfD                         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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  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)urlopenRequest	HTTPError)urlparse   )DistutilsErrorDistutilsOptionError)PyPIRCCommand)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 r   F)r   initialize_optionsusernamepasswordshow_responser   identity)selfs    ]/var/www/html/Qu*py/bism/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        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/           |.                    |           |.                    |           |/                                }d00                    || j                  }| 1                    |td          j3                   d1|z  t[          ti          |                    |d2}tk          | j        ||3          }	 tm          |          }|7                                }|j8        }n`# tr          $ r} | j:        }| j8        }Y d } ~ nCd } ~ wtv          $ r3} | 1                    t[          |           td          j<                    d } ~ ww xY w|d4k    r| 1                    d50                    ||          td          j3                   | j=        rO| >                    |          }!d6?                    d7|!d7f          }| 1                    |td          j3                   d S d S d80                    ||          }| 1                    |td          j<                   t          |          )9NzIncompatible url %s)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="%s"z; filename="%s"r      zutf-8s   

zSubmitting {} to {}z multipart/form-data; boundary=%s)zContent-typezContent-lengthAuthorization)dataheaders   zServer response ({}): {}
zK---------------------------------------------------------------------------zUpload failed ({}): {})Ar   r#   AssertionErrorr   r   r   r5   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formatannouncelogging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<   metarR   digest_namedigest_cons	user_passauthboundarysep_boundaryend_boundarybodykeyvaluetitler,   rS   requestresultstatusreasonetexts"                                     r    r+   zupload.upload_fileJ   sG   8@8Q8Q5VUI 	JU 	Ji 	J !6!HIII*** !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||**,, 	" 	"JCCcIEeT**   	" 	";;%''.q99E!!HEEJJ--g66E

<(((

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

;'''

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

<   }}#**8T_EEc7<((( ?I!#d))nn!
 
 $/gFFF		W%%F^^%%FZFF 	 	 	VFUFFFFFF 	 	 	MM#a&&'-000	 S==MM*11&&AA7<   ! 1//77ii4 :;;c7<000001 1
 +11&&AACMM#w}--- %%%sT   C C6 J
J$#J$:LLL*U
 

V'U''V'4.V""V'N)__name__
__module____qualname__rD   r   user_optionsboolean_optionsr   r%   r0   r+    r!   r    r   r      s        1K -7=1 L
 $3vh>O  7 7 7 ; ; ;E& E& E& E& E&r!   r   )__doc__r]   rs   hashlibr~   base64r   urllib.requestr   r   r   urllib.parser   errorsr	   r
   corer   r   getattrrm   r   r   r!   r    <module>r      s3    
			 				   % % % % % % 6 6 6 6 6 6 6 6 6 6 ! ! ! ! ! ! 9 9 9 9 9 9 9 9                   ''5$//WWh55 )T::  r& r& r& r& r&] r& r& r& r& r&r!   