a �DOg��@s<dZddlZddlmZddlmZdZGdd�de�ZdS)z�distutils.pypirc Provides the PyPIRCCommand class, the base class for the command classes that uses .pypirc in the distutils.command package. �N)�RawConfigParser)�CommandzE[distutils] index-servers = pypi [pypi] username:%s password:%s c@sheZdZdZdZdZdZdZdddefdgZd gZ d d �Z d d �Z dd�Z dd�Z dd�Zdd�ZdS)� PyPIRCCommandz;Base command that knows how to handle the .pypirc file zhttps://upload.pypi.org/legacy/�pypiNz repository=�rzurl of repository [default: %s])� show-responseNz&display full response text from serverrcCstj�tj�d�d�S)zReturns rc file path.�~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)zCreates a default .pypirc file.i��wN)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)zReads the .pypirc file.zUsing 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)z%Read and decode a PyPI HTTP response.rNz 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)zInitialize options.Nr)r$r%Z show_responser rrr�initialize_optionswsz PyPIRCCommand.initialize_optionscCs(|jdur|j|_|jdur$|j|_dS)zFinalizes options.N)r$r'r%r,r rrr�finalize_options}s  zPyPIRCCommand.finalize_options)�__name__� __module__� __qualname__�__doc__r'r,r$r%Z user_optionsZboolean_optionsrrr0r8r9r:rrrrrs&���@r)r>r � configparserrZ distutils.cmdrrrrrrr�s