U e5dÛã@s<dZddlZddlmZddlmZdZGdd„deƒZdS)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 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.8/distutils/config.pyÚ _get_rc_file&szPyPIRCCommand._get_rc_filec CsH| ¡}t t |tjtjBd¡d¡}| t||f¡W5QRXdS)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|krF|  dd¡}dd„|  d¡Dƒ}|gkrŽd|krŠdg}niS|D]°}d|i}|  |d ¡|d <d |jfd |j fd fD].\} } |  || ¡rê|  || ¡|| <qÄ| || <qÄ|dkr ||jdfkr |j|d <|S|d|ks:|d |kr’|Sq’nRd |kr˜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!ZcurrentÚ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)rZresponser3Z 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(|jdkr|j|_|jdkr$|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_optionsrrr/r6r7r8rrrrrs&ÿÿü@r)r<r Z configparserrZ distutils.cmdrrrrrrrÚs