a [ÎdgY+ã@sÎddlZddlZddlZddlZddlZddlmZddlmZm Z m Z m Z m Z ddl mZddlmZmZddlmZmZe e¡ZGdd„dejƒZGd d „d eƒZGd d „d ejƒZGd d„deƒZdS)éN)Úsuppress)ÚAnyÚDictÚIteratorÚListÚTuple)Ú UNKNOWN_ERROR)Ú ConfigurationÚConfigurationError)Úredact_auth_from_urlÚ strtoboolcsVeZdZ‡fdd„Zdd„Zddd„Zd d „Zd d „Zd d„Zdd„Z dd„Z ‡Z S)ÚPrettyHelpFormattercs:d|d<d|d<t ¡dd|d<tƒj|i|¤ŽdS)NéÚmax_help_positionéÚindent_incrementréÚwidth)ÚshutilÚget_terminal_sizeÚsuperÚ__init__)ÚselfÚargsÚkwargs©Ú __class__©úB/usr/local/lib/python3.9/site-packages/pip/_internal/cli/parser.pyrszPrettyHelpFormatter.__init__cCs | |¡S©N)Ú_format_option_strings)rÚoptionrrrÚformat_option_stringssz)PrettyHelpFormatter.format_option_stringsú <{}>ú, cCs~g}|jr| |jd¡|jr0| |jd¡t|ƒdkrH| d|¡| ¡rt|jp^|j ¡}| |  | ¡¡¡d  |¡S)NrrÚ) Z _short_optsÚappendZ _long_optsÚlenÚinsertZ takes_valueÚmetavarÚdestÚlowerÚformatÚjoin)rr!ZmvarfmtZoptsepZoptsr)rrrr !s   z*PrettyHelpFormatter._format_option_stringscCs|dkr dS|dS)NZOptionsr%ú: r)rÚheadingrrrÚformat_heading:sz"PrettyHelpFormatter.format_headingcCsd | t |¡d¡¡}|S)Nz Usage: {} ú )r,Ú indent_linesÚtextwrapÚdedent)rÚusageÚmsgrrrÚ format_usage@sz PrettyHelpFormatter.format_usagecCsZ|rRt|jdƒrd}nd}| d¡}| ¡}| t |¡d¡}|›d|›d}|SdSdS)NÚmainZCommandsZ DescriptionÚ r1r.r%)ÚhasattrÚparserÚlstripÚrstripr2r3r4)rÚ descriptionZlabelrrrÚformat_descriptionIs  z&PrettyHelpFormatter.format_descriptioncCs|r|SdSdS)Nr%r)rÚepilogrrrÚ format_epilog\sz!PrettyHelpFormatter.format_epilogcs"‡fdd„| d¡Dƒ}d |¡S)Ncsg|] }ˆ|‘qSrr)Ú.0Úline©ÚindentrrÚ fóz4PrettyHelpFormatter.indent_lines..r9)Úsplitr-)rÚtextrEZ new_linesrrDrr2dsz PrettyHelpFormatter.indent_lines)r#r$) Ú__name__Ú __module__Ú __qualname__rr"r r0r7r?rAr2Ú __classcell__rrrrr s   r cseZdZ‡fdd„Z‡ZS)ÚUpdatingDefaultsHelpFormattercs„d}|jdur.|j |jj¡|jj |j¡}tƒ |¡}|r€|jdkr€t|t ƒrX|g}t|t ƒsfg}|D]}|  |t |ƒ¡}qj|S)NZURL) r;Ú_update_defaultsÚdefaultsÚgetr*rÚexpand_defaultr)Ú isinstanceÚstrÚlistÚreplacer )rr!Zdefault_valuesÚ help_textÚvalrrrrRss    z,UpdatingDefaultsHelpFormatter.expand_default)rJrKrLrRrMrrrrrNjs rNc@s eZdZdd„Zedd„ƒZdS)ÚCustomOptionParsercOs,|j|i|¤Ž}|j ¡|j ||¡|Sr)Zadd_option_groupÚ option_groupsÚpopr()rÚidxrrÚgrouprrrÚinsert_option_groupŒs z&CustomOptionParser.insert_option_groupcCs*|jdd…}|jD]}| |j¡q|Sr)Z option_listrZÚextend)rÚresÚirrrÚoption_list_all–s z"CustomOptionParser.option_list_allN)rJrKrLr^ÚpropertyrbrrrrrY‹s rYcsJeZdZddœ‡fdd„ Zdd„Zdd„Zd d „Zd d „Zd d„Z‡Z S)ÚConfigOptionParserF)Úisolatedcs&||_t|ƒ|_tƒj|i|¤ŽdSr)Únamer Úconfigrr)rrfrerrrrrr¥s zConfigOptionParser.__init__c CsRz| ||¡WStjyL}z$td|›ƒt d¡WYd}~n d}~00dS)Nz(An error occurred during configuration: é)Ú check_valueÚoptparseZOptionValueErrorÚprintÚsysÚexit)rr!ÚkeyrXÚexcrrrÚ check_default³s z ConfigOptionParser.check_defaultccs”d|jdg}dd„|Dƒ}|j ¡D]D\}}|s>t d|¡q$| dd¡\}}||vr$|| ||f¡q$|D] }||D]\}}||fVqzqndS)NÚglobalz:env:cSsi|] }|g“qSrr)rBrfrrrÚ ÁszGConfigOptionParser._get_ordered_configuration_items..z7Ignoring configuration key '%s' as it's value is empty.Ú.r)rfrgÚitemsÚloggerÚdebugrHr&)rZoverride_orderZ section_itemsZ section_keyrXÚsectionrnrrrÚ _get_ordered_configuration_items»s" ÿþz3ConfigOptionParser._get_ordered_configuration_itemsc sât ˆj¡ˆ_tƒ}ˆ ¡D]œ\‰}ˆ dˆ¡‰ˆdur>qˆjdvr~z t|ƒ}Wn$t yxˆ  d  |ˆ¡¡Yn0n2ˆjdkrt t ƒt|ƒ}Wdƒn1s°0Yt t ƒt |ƒ}Wdƒn1sà0Yt|t ƒrþ|dkr°ˆ  d  |ˆ¡¡nžˆjdkr>| ¡}‡‡‡fdd „|Dƒ}nrˆjd kr¢| ˆj¡ˆ ¡}ˆ ||¡}ˆjptd }ˆjp€i}ˆjˆ||ˆg|¢Ri|¤Žnˆ ˆˆ|¡}||ˆj<q|D]‰tˆjˆƒ|ˆ<qÀdˆ_|S) Nz--)Ú store_trueÚ store_falsezm{} is not a valid value for {} option, please specify a boolean value like yes/no, true/false or 1/0 instead.Úcountrz¤{} is not a valid value for {} option, please instead specify either a non-negative integer or a boolean value like yes/no or false/true which is equivalent to 1/0.r&csg|]}ˆ ˆˆ|¡‘qSr)rp)rBÚv©rnr!rrrrFrGz7ConfigOptionParser._update_defaults..Úcallbackr)rjÚValuesrPÚvaluesÚsetrxZ get_optionÚactionr Ú ValueErrorÚerrorr,rÚintrSrHÚaddr*Úget_opt_stringZ convert_valueZ callback_argsZcallback_kwargsr~rpÚgetattr)rrPZ late_evalrXÚopt_strrrrr}rrOÖsT   þÿ  & &ýÿ        z#ConfigOptionParser._update_defaultsc Cs®|jst |j¡Sz|j ¡Wn4tyT}z| tt |ƒ¡WYd}~n d}~00|  |j  ¡¡}|  ¡D]4}|  |j¡}t|t ƒrn| ¡}| ||¡||j<qnt |¡Sr)Zprocess_default_valuesrjrrPrgÚloadr rmrrTrOÚcopyZ_get_all_optionsrQr*rSr‡ri)rÚerrrPr!Údefaultr‰rrrÚget_default_valuess &   z%ConfigOptionParser.get_default_valuescCs"| tj¡| t|›d¡dS)Nr9)Ú print_usagerlÚstderrrmr)rr6rrrr„.s zConfigOptionParser.error) rJrKrLrrprxrOrŽr„rMrrrrrd¡süArd)Úloggingrjrrlr3Ú contextlibrÚtypingrrrrrZpip._internal.cli.status_codesrZpip._internal.configurationr r Zpip._internal.utils.miscr r Ú getLoggerrJruZIndentedHelpFormatterr rNZ OptionParserrYrdrrrrÚs   X!