o
    DXîhÛ  ã                   @   s:   	 d dl Z d dlmZ d dlmZ dZG dd„ deƒZdS )é    N)ÚRawConfigParser)ÚCommandzE[distutils]
index-servers =
    pypi

[pypi]
username:%s
password:%s
c                   @   sf   e Zd Z	 dZdZdZdZddde fdgZdgZd	d
„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚPyPIRCCommandzhttps://upload.pypi.org/legacy/ÚpypiNzrepository=Úrzurl of repository [default: %s])úshow-responseNz&display full response text from serverr   c                 C   s   	 t j t j d¡d¡S )Nú~z.pypirc)ÚosÚpathÚjoinÚ
expanduser©Úself© r   ú:/opt/python-3.10.19/usr/lib/python3.10/distutils/config.pyÚ_get_rc_file&   s   zPyPIRCCommand._get_rc_filec                 C   s`   	 |   ¡ }t t |tjtjB d¡d¡}| t||f ¡ W d   ƒ d S 1 s)w   Y  d S )Ni€  Úw)r   r	   ÚfdopenÚopenÚO_CREATÚO_WRONLYÚwriteÚDEFAULT_PYPIRC)r   ÚusernameÚpasswordÚrcÚfr   r   r   Ú_store_pypirc*   s
    "ÿzPyPIRCCommand._store_pypircc                 C   s’  	 |   ¡ }tj |¡rÇ|  d| ¡ | jp| j}tƒ }| |¡ | 	¡ }d|v r | 
dd¡}dd„ | d¡D ƒ}|g krFd|v rDdg}ni S |D ]U}d|i}| 
|d	¡|d	< d
| jfd| jfdfD ]\}	}
| ||	¡rt| 
||	¡||	< qa|
||	< qa|dkr|| jdfv r| j|d
< |  S |d |ks™|d
 |kr|  S qHi S d|v rÇd}| |d
¡r³| 
|d
¡}n| j}| 
|d	¡| 
|d¡||| jdœS i S )NzUsing PyPI login from %sZ	distutilszindex-serversc                 S   s    g | ]}|  ¡ d kr|  ¡ ‘qS )Ú )Ústrip)Ú.0Úserverr   r   r   Ú
<listcomp>=   s    þz.PyPIRCCommand._read_pypirc.<locals>.<listcomp>Ú
r   r!   r   Ú
repositoryÚrealm)r   Nzserver-loginr   )r   r   r$   r!   r%   )r   r	   r
   ÚexistsZannouncer$   ÚDEFAULT_REPOSITORYr   ÚreadÚsectionsÚgetÚsplitÚDEFAULT_REALMZ
has_option)r   r   r$   Zconfigr)   Zindex_serversZ_serversr!   ÚcurrentÚkeyÚdefaultr   r   r   Ú_read_pypirc0   sd   
ÿÿý

ÿó

üzPyPIRCCommand._read_pypircc                 C   s:   	 dd l }| dd¡}| |¡d  dd¡}| ¡  |¡S )Nr   zcontent-typez
text/plainé   ÚcharsetÚascii)ÚcgiZ	getheaderZparse_headerr*   r(   Údecode)r   Úresponser4   Zcontent_typeÚencodingr   r   r   Ú_read_pypi_responsep   s
   z!PyPIRCCommand._read_pypi_responsec                 C   s   	 d | _ d | _d| _d S )Nr   )r$   r%   Zshow_responser   r   r   r   Úinitialize_optionsw   s   
z PyPIRCCommand.initialize_optionsc                 C   s.   	 | j d u r
| j| _ | jd u r| j| _d S d S )N)r$   r'   r%   r,   r   r   r   r   Úfinalize_options}   s   

ÿzPyPIRCCommand.finalize_options)Ú__name__Ú
__module__Ú__qualname__r'   r,   r$   r%   Zuser_optionsZboolean_optionsr   r   r0   r8   r9   r:   r   r   r   r   r      s(    ÿÿü@r   )r	   Úconfigparserr   Zdistutils.cmdr   r   r   r   r   r   r   Ú<module>   s    
