7i*(dZddlZddlZddlZddlZddlZddlmZddlm Z m Z m Z m Z m Z ddlmZddlmZmZddlmZmZej,eZGdd ej2ZGd d eZGd d ej8ZGddeZy)zBase option parser setupN)suppress)AnyDict GeneratorListTuple) UNKNOWN_ERROR) ConfigurationConfigurationError)redact_auth_from_url strtoboolc eZdZdZdededdffd ZdejdefdZ ddejd ed edefd Z d edefd Z dedefdZ dedefdZ dedefdZdededefdZxZS)PrettyHelpFormatterz4A prettier/less verbose help formatter for optparse.argskwargsreturnNcrd|d<d|d<tjddz |d<t| |i|y)Nmax_help_positionindent_incrementrwidth)shutilget_terminal_sizesuper__init__)selfrr __class__s a/mnt/ssd/data/python-lab/ChefSystem/venv/lib/python3.12/site-packages/pip/_internal/cli/parser.pyrzPrettyHelpFormatter.__init__sG&("#%&!" 224Q7!;w $)&)optionc$|j|SN)_format_option_strings)rr"s r format_option_stringsz)PrettyHelpFormatter.format_option_stringss**622r!mvarfmtoptsepcg}|jr|j|jd|jr|j|jdt|dkDr|j d||j rd|j J|jxs|j j}|j|j|jdj|S)z Return a comma-separated list of option strings and metavars. :param option: tuple of (short opt, long opt), e.g: ('-f', '--format') :param mvarfmt: metavar format string :param optsep: separator rr) _short_optsappend _long_optsleninsert takes_valuedestmetavarlowerformatjoin)rr"r'r(optsr2s r r%z*PrettyHelpFormatter._format_option_stringss    KK**1- .    KK))!, - t9q= KK6 "    ;;* **nn; (9(9(;G KKw}}7 8wwt}r!headingc|dk(ry|dzS)NOptionsr*: )rr7s r format_headingz"PrettyHelpFormatter.format_heading9s i r!usagecndj|jtj|d}|S)zz Ensure there is only one newline between usage and the first heading if there is no description. z Usage: {}  )r4 indent_linestextwrapdedent)rr=msgs r format_usagez PrettyHelpFormatter.format_usage>s/ $$T%6%6xu7Mt%TU r! descriptionc|rkt|jdrd}nd}|jd}|j}|j t j |d}|d|d}|Sy)NmainCommands Description r?r:r*)hasattrparserlstriprstripr@rArB)rrElabels r format_descriptionz&PrettyHelpFormatter.format_descriptionFsq t{{F+"%%,,T2K%,,.K++HOOK,H$OK"G3{m26K r!epilogc |r|Sy)Nr*r;)rrQs r format_epilogz!PrettyHelpFormatter.format_epilogXs Mr!textindentcp|jdDcgc]}||z }}dj|Scc}wNrJ)splitr5)rrTrUline new_liness r r@z PrettyHelpFormatter.indent_lines_s7/3zz$/?@tVd]@ @yy##As 3)z <{}>z, )__name__ __module__ __qualname____doc__rroptparseOptionstrr&r%r<rDrPrSr@ __classcell__rs@r rrs>*c*S*T*3HOO33NRoo03GJ 4cc ##cc$CC$$c$c$r!rc@eZdZdZdej deffd ZxZS)UpdatingDefaultsHelpFormatterzCustom help formatter for use in ConfigOptionParser. This is updates the defaults before expanding them, allowing them to show up correctly in the help listing. Also redact auth from url type options r"rcd}|jt|jtsJ|jj|jj|j J|jjj |j }t|!|}|rV|jdk(rGt|tr|g}t|tsg}|D]}|j|t|}|S)NURL)rL isinstanceConfigOptionParser_update_defaultsdefaultsr1getrexpand_defaultr2ralistreplacer )rr"default_values help_textvalrs r rmz,UpdatingDefaultsHelpFormatter.expand_defaultms ;; "dkk+=> >> KK ( ()=)= >;;* **![[1155fkkBNG*62 fnn5.#."0!1nd3!#% N%--c3G3LM  Nr!) r[r\r]r^r_r`rarmrbrcs@r rereds$X__r!recheZdZdedededej fdZede ejfdZ y)CustomOptionParseridxrrrc|j|i|}|jj|jj|||S)z*Insert an OptionGroup at a given position.)add_option_group option_groupspopr/)rrurrgroups r insert_option_groupz&CustomOptionParser.insert_option_groupsH&%%t6v6   !!#u- r!c||jdd}|jD]}|j|j|S)z++- MF;;* **ll6;;/G'3' //1(.(:(:7G(L%  M x((" / IImSX . . /sD D5 D00D5rCct|jtj|jt|dyrW) print_usagerstderrrr )rrCs r rzConfigOptionParser.error$s( $ -C5,r!)r[r\r]r^rraboolrr_r`rrrrrrjrrrrbrcs@r riris7 * * * *  *  *HOO#CC 5c?D$. /8>c3h>DcN>@)HOO),---r!ri)r^loggingr_rrrA contextlibrtypingrrrrrpip._internal.cli.status_codesr pip._internal.configurationr r pip._internal.utils.miscr r getLoggerr[rIndentedHelpFormatterrre OptionParserrtrir;r!r rs 448ID   8 $O$(88O$d$7@..,L-+L-r!