£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
U
    e5d-                     @   s`   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	T d dl
mZ G dd deZdS )    N)warn)PyPIRCCommand)*)logc                   @   s   e Zd ZdZejddg Zejdddg Zddd	 fgZd
d Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd ZdddZdS ) registerz7register the distribution with the Python package index)list-classifiersNz list the valid Trove classifiers)strictNzBWill stop the registering if the meta-data are not fully compliantverifyr   r   checkc                 C   s   dS )NT selfr   r   2/usr/lib64/python3.8/distutils/command/register.py<lambda>       zregister.<lambda>c                 C   s   t |  d| _d| _d S )Nr   )r   initialize_optionslist_classifiersr   r   r   r   r   r      s    
zregister.initialize_optionsc                 C   s*   t |  d| jfdd}|| jjd< d S )Nr   )r      )r   restructuredtextr
   )r   finalize_optionsr   distributionZcommand_options)r   Zcheck_optionsr   r   r   r   $   s
    
zregister.finalize_optionsc                 C   sT   |    |   |  D ]}| | q| jr8|   n| jrH|   n|   d S )N)	r   _set_configZget_sub_commandsZrun_commandZdry_runverify_metadatar   classifierssend_metadata)r   Zcmd_namer   r   r   run+   s    

zregister.runc                 C   s8   t dt | jd}|  | j|_d|_|  d S )Nzddistutils.command.register.check_metadata is deprecated,               use the check command insteadr
   r   )r   PendingDeprecationWarningr   Zget_command_objZensure_finalizedr   r   r   )r   r
   r   r   r   check_metadata:   s    zregister.check_metadatac                 C   sz   |   }|i kr@|d | _|d | _|d | _|d | _d| _n6| jd| jfkr^td| j | jdkrp| j| _d| _d S )	Nusernamepassword
repositoryrealmTZpypiz%s not found in .pypircF)Z_read_pypircr   r   r    r!   
has_configZDEFAULT_REPOSITORY
ValueError)r   Zconfigr   r   r   r   D   s    




zregister._set_configc                 C   s*   | j d }tj|}t| | d S )Nz?:action=list_classifiers)r    urllibrequestZurlopenr   info_read_pypi_response)r   ZurlZresponser   r   r   r   U   s    
zregister.classifiersc                 C   s&   |  | d\}}td|| d S )Nr	   Server response (%s): %s)post_to_serverbuild_post_datar   r&   )r   coderesultr   r   r   r   \   s    zregister.verify_metadatac           
      C   s  | j rd}| j}| j}nd}d }}d }||krd| dtj t }|sRd}q,||kr,td q,|dkrl|s|td}qn|st		d}q|t
j }t
j| jd	 }|| j||| | | d
|\}}| d||f tj |dkr| j r|| j_nf| dtj | d|   tj d}| dkrNtd}|s*d}q*| dkr| || nl|dkrddi}	d |	d<  |	d< |	d< d |	d< |	d std|	d< q|	d |	d kr0|	d st		d|	d< q|	d st		d|	d< q|	d |	d krd|	d< d |	d< td q|	d sJtd|	d< q0| |	\}}|dkrrtd|| ntd td nP|d krdd!i}	d|	d< |	d std"|	d< q| |	\}}td|| d S )#N1x z1 2 3 4zWe need to know who you are, so please choose either:
 1. use your existing login,
 2. register as a new user,
 3. have the server generate a new password for you (and email it to you), or
 4. quit
Your selection [default 1]: z&Please choose one of the four options!z
Username: z
Password: r   Zsubmitr(      zAI can store your PyPI login so future submissions will be faster.z (the login will be stored in %s)XZynzSave your login (y/N)?ny2:actionusernamer   ZemailZconfirmz
 Confirm: z!Password and confirm don't match!z
   EMail: z"You will receive an email shortly.z7Follow the instructions in it to complete registration.3Zpassword_resetzYour email address: )r"   r   r   splitannouncer   INFOinputprintgetpassr$   r%   ZHTTPPasswordMgrparseZurlparser    Zadd_passwordr!   r)   r*   r   Z_get_rc_filelowerZ_store_pypircr&   )
r   Zchoicer   r   choicesauthZhostr+   r,   datar   r   r   r   c   s    














zregister.send_metadatac                 C   s   | j j}|d| | | | | | | |	 |
 | | | | | | d}|d s|d s|d rd|d< |S )Nz1.0)r5   metadata_versionr7   versionZsummaryZ	home_pageZauthorZauthor_emaillicensedescriptionkeywordsplatformr   Zdownload_urlprovidesrequires	obsoletesrJ   rK   rL   z1.1rD   )r   ZmetadataZget_nameZget_versionZget_descriptionZget_urlZget_contactZget_contact_emailZget_licenceZget_long_descriptionZget_keywordsZget_platformsZget_classifiersZget_download_urlZget_providesZget_requiresZget_obsoletes)r   actionmetarC   r   r   r   r*      s,    zregister.build_post_dataNc              
   C   s  d|kr$|  d|d | jf tj d}d| }|d }t }| D ]~\}}t|tg tdfkrn|g}|D ]R}t|}|	| |	d|  |	d |	| |rr|d	 d
krr|	d qrqH|	| |	d |
 d}d| tt|d}	tj| j||	}
tjtjj|d}d}z||
}W nx tjjk
r } z"| jrd|j }|j|jf}W 5 d }~X Y nJ tjjk
r } zdt|f}W 5 d }~X Y nX | jr| |}d}| jrdd|df}|  |tj |S )Nr7   zRegistering %s to %sz3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254z
--z--r   z*
Content-Disposition: form-data; name="%s"z


zutf-8z/multipart/form-data; boundary=%s; charset=utf-8)zContent-typezContent-length)Zpassword_mgrr/   i  )r0   ZOKzK---------------------------------------------------------------------------)r:   r    r   r;   ioStringIOitemstypestrwritegetvalueencodelenr$   r%   ZRequestZbuild_openerZHTTPBasicAuthHandleropenerrorZ	HTTPErrorZshow_responsefpreadr+   msgZURLErrorr'   join)r   rC   rB   boundaryZsep_boundaryZend_boundaryZbodykeyvalueZheadersZreqZopenerr,   er_   r   r   r   r)      s^    







zregister.post_to_server)N)__name__
__module____qualname__rG   r   Zuser_optionsZboolean_optionsZsub_commandsr   r   r   r   r   r   r   r   r*   r)   r   r   r   r   r      s*     
zr   )r>   rR   Zurllib.parser$   Zurllib.requestwarningsr   Zdistutils.corer   Zdistutils.errorsZ	distutilsr   r   r   r   r   r   <module>   s   