[@sRdZddlZddlmZddlmZdZGdddeZdS)zdistutils.pypirc Provides the PyPIRCCommand class, the base class for the command classes that uses .pypirc in the distutils.command package. N) ConfigParser)CommandzE[distutils] index-servers = pypi [pypi] username:%s password:%s c@seZdZdZdZdZdZdZdddefdgZdgZ d d Z d d Z ddZ ddZ ddZddZdS) PyPIRCCommandz;Base command that knows how to handle the .pypirc file zhttps://pypi.python.org/pypipypiNz repository=rzurl of repository [default: %s] show-response&display full response text from servercCstjjtjjddS)zReturns rc file path.~z.pypirc)ospathjoin expanduser)selfr&/usr/lib/python3.4/distutils/config.py _get_rc_file&szPyPIRCCommand._get_rc_filec Cs[|j}tjtj|tjtjBdd}|jt||fWdQXdS)zCreates a default .pypirc file.iwN)rr fdopenopenO_CREATO_WRONLYwriteDEFAULT_PYPIRC)rusernamepasswordrcfrrr _store_pypirc*s .zPyPIRCCommand._store_pypircc CsY|j}tjj|rU|jd||jp>|j}|jpP|j}t }|j ||j }d|kr|j dd}dd|j dD}|gkrd|krdg}qiSnxu|D]}i|d6} |j |d | d >s z.PyPIRCCommand._read_pypirc.. rr!r repositoryrealmrNz server-login)zpasswordN)rr r existsZannouncer$DEFAULT_REPOSITORYr% DEFAULT_REALMrreadsectionsgetsplitZ has_option) rrr$r%Zconfigr*Z index_serversZ_serversr!Zcurrentkeydefaultrrr _read_pypirc0sX                  zPyPIRCCommand._read_pypirccCsPddl}|jdd}|j|djdd}|jj|S)z%Read and decode a PyPI HTTP response.rNz content-typez text/plaincharsetascii)cgiZ getheaderZ parse_headerr+r)decode)rZresponser3Z content_typeencodingrrr_read_pypi_responseqs z!PyPIRCCommand._read_pypi_responsecCsd|_d|_d|_dS)zInitialize options.Nr)r$r%Z show_response)rrrrinitialize_optionsxs  z PyPIRCCommand.initialize_optionscCs@|jdkr|j|_n|jdkr<|j|_ndS)zFinalizes options.N)r$r'r%r()rrrrfinalize_options~szPyPIRCCommand.finalize_options)rNr)__name__ __module__ __qualname____doc__r'r(r$r%Z user_optionsZboolean_optionsrrr/r6r7r8rrrrrs"      A  r)r<r Z configparserrZ distutils.cmdrrrrrrrs