a �DOg��@s8ddlZddlmZddlmZdZGdd�de�ZdS)�N)�RawConfigParser)�CommandzE[distutils] index-servers = pypi [pypi] username:%s password:%s c@sdeZdZdZdZdZdZdddefdgZdgZd d �Z d d �Z d d�Z dd�Z dd�Z dd�ZdS)� PyPIRCCommandzhttps://upload.pypi.org/legacy/�pypiNz repository=�rzurl of repository [default: %s])� show-responseNz&display full response text from serverrcCstj�tj�d�d�S)N�~z.pypirc)�os�path�join� expanduser��self�r�(/usr/lib64/python3.9/distutils/config.py� _get_rc_file&szPyPIRCCommand._get_rc_filecCs\|��}t�t�|tjtjBd�d��"}|�t||f�Wd�n1sN0YdS)Ni��w)rr �fdopen�open�O_CREAT�O_WRONLY�write�DEFAULT_PYPIRC)r�username�password�rc�frrr� _store_pypirc*s zPyPIRCCommand._store_pypircc Cs�|��}tj�|��r�|�d|�|jp.|j}t�}|�|�|� �}d|v�rF|� dd�}dd�|� d�D�}|gkr�d|vr�dg}niS|D]�}d|i}|� |d �|d <d |jfd |j fd fD].\} } |� || �r�|� || �|| <q�| || <q�|dk�r ||jdfv�r |j|d <|S|d|k�s:|d |kr�|Sq�nRd |v�r�d }|� |d ��rp|� |d �}n|j}|� |d �|� |d�|||j d�SiS)NzUsing PyPI login from %sZ distutilsz index-serverscSs g|]}|��dkr|���qS)�)�strip)�.0�serverrrr� =s �z.PyPIRCCommand._read_pypirc..� rr!r� repository�realm)rNz server-loginr)rrr$r!r%)rr r �existsZannouncer$�DEFAULT_REPOSITORYr�read�sections�get�split� DEFAULT_REALMZ has_option) rrr$Zconfigr)Z index_serversZ_serversr!�current�key�defaultrrr� _read_pypirc0sb    ���     �  �    �zPyPIRCCommand._read_pypirccCs8ddl}|�dd�}|�|�d�dd�}|���|�S)Nrz content-typez text/plain��charset�ascii)�cgiZ getheaderZ parse_headerr*r(�decode)r�responser4Z content_type�encodingrrr�_read_pypi_responseps z!PyPIRCCommand._read_pypi_responsecCsd|_d|_d|_dS)Nr)r$r%Z show_responser rrr�initialize_optionswsz PyPIRCCommand.initialize_optionscCs(|jdur|j|_|jdur$|j|_dS)N)r$r'r%r,r rrr�finalize_options}s  zPyPIRCCommand.finalize_options)�__name__� __module__� __qualname__r'r,r$r%Z user_optionsZboolean_optionsrrr0r8r9r:rrrrrs$���@r)r � configparserrZ distutils.cmdrrrrrrr�s