o
    ^+)h8                     @   s<   d Z ddlZddlmZ ddlmZ dZG dd deZdS )zdistutils.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                   @   sh   e Zd 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 )PyPIRCCommandz6Base command that knows how to handle the .pypirc filez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 )zReturns rc file path.~z.pypirc)ospathjoin
expanduserself r   [C:\Users\User\Downloads\Proyecto_IoT\venv\Lib\site-packages\setuptools/_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 )zCreates a default .pypirc file.i  wN)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rEd|v rCdg}ni S |D ]U}d|i}|
|d	|d	< d
| jfd| jfdfD ]\}	}
|||	rs|
||	||	< q`|
||	< q`|dkr|| jdfv r| j|d
< |  S |d |ks|d
 |kr|  S qGi S d|v rd}||d
r|
|d
}n| j}|
|d	|
|d||| jdS i S )zReads the .pypirc file.zUsing PyPI login from %s	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_REALM
has_option)r   r   r%   configr*   index_servers_serversr"   currentkeydefaultr   r   r   _read_pypirc/   sb   





zPyPIRCCommand._read_pypircc                 C   s8   ddl }|dd}||d dd}| |S )z%Read and decode a PyPI HTTP response.r   Nzcontent-typez
text/plain   charsetascii)cgi	getheaderZparse_headerr+   r)   decode)r   responser9   content_typeencodingr   r   r   _read_pypi_responsex   s   z!PyPIRCCommand._read_pypi_responsec                 C   s   d| _ d| _d| _dS )zInitialize options.Nr   )r%   r&   Zshow_responser   r   r   r   initialize_options   s   
z PyPIRCCommand.initialize_optionsc                 C   s,   | j du r	| j| _ | jdu r| j| _dS dS )zFinalizes options.N)r%   r(   r&   r-   r   r   r   r   finalize_options   s
   

zPyPIRCCommand.finalize_options)__name__
__module____qualname____doc__r(   r-   r%   r&   Zuser_optionsZboolean_optionsr   r   r5   r?   r@   rA   r   r   r   r   r      s     Ir   )rE   r	   configparserr   Zdistutils.cmdr   r   r   r   r   r   r   <module>   s    