B � f��@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])z show-responseNz&display full response text from serverz show-responsecCstj�tj�d�d�S)zReturns rc file path.�~z.pypirc)�os�path�join� expanduser)�self�r �5/opt/alt/python37/lib64/python3.7/distutils/config.py� _get_rc_file&szPyPIRCCommand._get_rc_filec CsH|��}t�t�|tjtjBd�d��}|�t||f�WdQRXdS)zCreates a default .pypirc file.i��wN)rr�fdopen�open�O_CREAT�O_WRONLY�write�DEFAULT_PYPIRC)r �username�password�rc�fr r r� _store_pypirc*s zPyPIRCCommand._store_pypircc Cs�|��}tj�|��r�|�d|�|jp.|j}t�}|�|�|� �}d|k�rF|� dd�}dd�|� d�D�}|gkr�d|kr�dg}niSx�|D]�}d|i}|� |d �|d <xHd |jfd |j fd fD].\} } |� || �r�|� || �|| <q�| || <q�W|dk�r"||jdfk�r"|j|d <|S|d|k�s<|d |kr�|Sq�WnRd |k�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�serverr r r� =sz.PyPIRCCommand._read_pypirc..� rrr� repository�realm)rNz server-loginr)rrr"rr#)rrr �existsZannouncer"�DEFAULT_REPOSITORYr�read�sections�get�split� DEFAULT_REALMZ has_option) r rr"Zconfigr'Z index_serversZ_serversrZcurrent�key�defaultr r r� _read_pypirc0sV               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 Zresponser1Z content_type�encodingr r r�_read_pypi_responseps z!PyPIRCCommand._read_pypi_responsecCsd|_d|_d|_dS)zInitialize options.Nr)r"r#Z show_response)r r r r�initialize_optionswsz PyPIRCCommand.initialize_optionscCs(|jdkr|j|_|jdkr$|j|_dS)zFinalizes options.N)r"r%r#r*)r r r r�finalize_options}s  zPyPIRCCommand.finalize_options)�__name__� __module__� __qualname__�__doc__r%r*r"r#Z user_optionsZboolean_optionsrrr-r4r5r6r r r rrs @r)r:rZ configparserrZ distutils.cmdrrrr r r r�s