U e@s<dZddlZddlmZddlmZdZGdddeZdS)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@sheZdZdZdZdZdZdZdddefdgZd gZ d d Z d d Z ddZ ddZ ddZddZdS) 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 serverrcCstjtjddS)zReturns rc file path.~z.pypirc)ospathjoin expanduserselfrJ/opt/hc_python/lib/python3.8/site-packages/setuptools/_distutils/config.py _get_rc_file&szPyPIRCCommand._get_rc_filec CsH|}tt|tjtjBdd}|t||fW5QRXdS)zCreates a default .pypirc file.iwN)rr fdopenopenO_CREATO_WRONLYwriteDEFAULT_PYPIRC)rusernamepasswordrcfrrr _store_pypirc*s zPyPIRCCommand._store_pypircc Cs|}tj|r|d||jp.|j}t}||| }d|krF| dd}dd| dD}|gkrd|krdg}niS|D]}d|i}| |d |d <d |jfd |j fd fD].\} } | || r| || || <q| || <q|dkr ||jdfkr |j|d <|S|d|ks:|d |kr|SqnRd |krd }| |d rp| |d }n|j}| |d | |d|||j dSiS)zReads the .pypirc file.zUsing PyPI login from %s distutilsz index-serverscSs g|]}|dkr|qS))strip).0serverrrr =s z.PyPIRCCommand._read_pypirc.. rr"r repositoryrealm)rNz server-loginr)rrr%r"r&)rr r existsannouncer%DEFAULT_REPOSITORYrreadsectionsgetsplit DEFAULT_REALM has_option) rrr%configr+ index_servers_serversr"currentkeydefaultrrr _read_pypirc0sb               zPyPIRCCommand._read_pypirccCs8ddl}|dd}||ddd}||S)z%Read and decode a PyPI HTTP response.rNz content-typez text/plaincharsetascii)cgi getheader parse_headerr,r*decode)rresponser: content_typeencodingrrr_read_pypi_responseps z!PyPIRCCommand._read_pypi_responsecCsd|_d|_d|_dS)zInitialize options.Nr)r%r& show_responser rrrinitialize_optionswsz PyPIRCCommand.initialize_optionscCs(|jdkr|j|_|jdkr$|j|_dS)zFinalizes options.N)r%r)r&r.r rrrfinalize_options}s  zPyPIRCCommand.finalize_options)__name__ __module__ __qualname____doc__r)r.r%r& user_optionsboolean_optionsrrr6rArCrDrrrrrs&@r)rHr configparserr distutils.cmdrrrrrrrs