ó
    Þ j;*  ã                   ó,  • S r SSKrSSKrSSKrSSKrSSKrSSKJr  SSKJ	r	J
r
JrJrJrJr  SSKJr  SSKJrJr  SSKJrJr  \R.                  " \5      r " S S	\R4                  5      r " S
 S\5      r " S S\R:                  5      r " S S\5      rg)zBase option parser setupé    N)Úsuppress)ÚAnyÚDictÚ	GeneratorÚListÚOptionalÚTuple)ÚUNKNOWN_ERROR)ÚConfigurationÚConfigurationError)Úredact_auth_from_urlÚ	strtoboolc            	       ó   ^ • \ rS rSrSrS\S\SS4U 4S jjrS\R                  S\	4S	 jr
 SS\R                  S
\	S\	S\	4S jjrS\	S\	4S jrS\	S\	4S jrS\\	   S\	4S jrS\\	   S\	4S jrS\	S\	S\	4S jrSrU =r$ )ÚPrettyHelpFormatteré   z4A prettier/less verbose help formatter for optparse.ÚargsÚkwargsÚreturnNc                 óv   >• SUS'   SUS'   [         R                  " 5       S   S-
  US'   [        TU ]  " U0 UD6  g )Né   Úmax_help_positioné   Úindent_incrementr   é   Úwidth)ÚshutilÚget_terminal_sizeÚsuperÚ__init__)Úselfr   r   Ú	__class__s      €ÚR/var/www/html/gaurav/venv/lib/python3.13/site-packages/pip/_internal/cli/parser.pyr   ÚPrettyHelpFormatter.__init__   sG   ø€ à&(ˆÐ"Ñ#Ø%&ˆÐ!Ñ"Ü ×2Ò2Ó4°QÑ7¸!Ñ;ˆˆw‰Ü‰Ò˜$Ð) &Ó)ó    Úoptionc                 ó$   • U R                  U5      $ ©N)Ú_format_option_strings)r    r%   s     r"   Úformat_option_stringsÚ)PrettyHelpFormatter.format_option_strings   s   € Ø×*Ñ*¨6Ó2Ð2r$   ÚmvarfmtÚoptsepc                 ó$  • / nUR                   (       a  UR                  UR                   S   5        UR                  (       a  UR                  UR                  S   5        [        U5      S:”  a  UR	                  SU5        UR                  5       (       aj  UR                  c   eUR                  =(       d    UR                  R                  5       nUR                  UR                  UR                  5       5      5        SR                  U5      $ )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
r   r   Ú )Ú_short_optsÚappendÚ
_long_optsÚlenÚinsertÚtakes_valueÚdestÚmetavarÚlowerÚformatÚjoin)r    r%   r+   r,   Úoptsr6   s         r"   r(   Ú*PrettyHelpFormatter._format_option_strings   sÅ   € ð ˆà××Ø�K‰K˜×*Ñ*¨1Ñ-Ô.Ø××Ø�K‰K˜×)Ñ)¨!Ñ,Ô-Üˆt‹9�q‹=Ø�K‰K˜˜6Ô"à×Ñ×ÑØ—;‘;Ñ*Ð*Ð*Ø—n‘n×;¨¯©×(9Ñ(9Ó(;ˆGØ�K‰K˜Ÿ™ w§}¡}£Ó7Ô8à�w‰w�t‹}Ðr$   Úheadingc                 ó   • US:X  a  gUS-   $ )NÚOptionsr.   ú:
© )r    r<   s     r"   Úformat_headingÚ"PrettyHelpFormatter.format_heading9   s   € Ø�iÓØØ˜‰Ðr$   Úusagec                 óp   • SR                  U R                  [        R                  " U5      S5      5      nU$ )zb
Ensure there is only one newline between usage and the first heading
if there is no description.
z
Usage: {}
ú  )r8   Úindent_linesÚtextwrapÚdedent)r    rC   Úmsgs      r"   Úformat_usageÚ PrettyHelpFormatter.format_usage>   s/   € ð
 ×$Ñ$ T×%6Ñ%6´x·²ÀuÓ7MÈtÓ%TÓUˆØˆ
r$   Údescriptionc                 óô   • U(       aq  [        U R                  S5      (       a  SnOSnUR                  S5      nUR                  5       nU R	                  [
        R                  " U5      S5      nU SU S3nU$ g)NÚmainÚCommandsÚDescriptionÚ
rE   r?   r.   )ÚhasattrÚparserÚlstripÚrstriprF   rG   rH   )r    rL   Úlabels      r"   Úformat_descriptionÚ&PrettyHelpFormatter.format_descriptionF   st   € æÜ�t—{‘{ F×+Ñ+Ø"‘à%�à%×,Ñ,¨TÓ2ˆKà%×,Ñ,Ó.ˆKà×+Ñ+¬H¯OªO¸KÓ,HÈ$ÓOˆKØ"˜G 3 { m°2Ð6ˆKØÐàr$   Úepilogc                 ó   • U(       a  U$ g)Nr.   r@   )r    rY   s     r"   Úformat_epilogÚ!PrettyHelpFormatter.format_epilogX   s   € æØˆMàr$   ÚtextÚindentc                 ór   • UR                  S5       Vs/ sH  o2U-   PM	     nnSR                  U5      $ s  snf ©NrQ   )Úsplitr9   )r    r]   r^   ÚlineÚ	new_liness        r"   rF   Ú PrettyHelpFormatter.indent_lines_   s8   € Ø/3¯z©z¸$Ô/?Ó@Ñ/? t˜d”]Ñ/?ˆ	Ð@Ø�y‰y˜Ó#Ð#ùò As   ”4r@   )z <{}>z, )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   ÚoptparseÚOptionÚstrr)   r(   rA   rJ   r   rW   r[   rF   Ú__static_attributes__Ú__classcell__©r!   s   @r"   r   r      sÚ   ø† Ù>ð*˜cð *¨Sð *°T÷ *ð3¨H¯O©Oð 3Àô 3ð NRñØ—o‘oðØ03ðØGJðà	õð4 cð ¨cô ð
 #ð ¨#ô ð¨h°s©mð Àô ð$ H¨S¡Mð °cô ð$ ð $¨cð $°c÷ $ò $r$   r   c                   óL   ^ • \ rS rSrSrS\R                  S\4U 4S jjrSr	U =r
$ )ÚUpdatingDefaultsHelpFormatteréd   zÊCustom 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%   r   c                 ó4  >• S nU R                   bŽ  [        U R                   [        5      (       d   eU R                   R                  U R                   R                  5        UR
                  c   eU R                   R                  R                  UR
                  5      n[        TU ]!  U5      nU(       ac  UR                  S:X  aS  [        U[        5      (       a  U/n[        U[        5      (       d  / nU H  nUR                  U[        U5      5      nM      U$ )NÚURL)rS   Ú
isinstanceÚConfigOptionParserÚ_update_defaultsÚdefaultsr5   Úgetr   Úexpand_defaultr6   rl   ÚlistÚreplacer   )r    r%   Údefault_valuesÚ	help_textÚvalr!   s        €r"   rz   Ú,UpdatingDefaultsHelpFormatter.expand_defaultm   sä   ø€ ØˆØ�;‰;Ñ"Ü˜dŸk™kÔ+=×>Ñ>Ð>Ð>Ø�K‰K×(Ñ(¨¯©×)=Ñ)=Ô>Ø—;‘;Ñ*Ð*Ð*Ø!Ÿ[™[×1Ñ1×5Ñ5°f·k±kÓBˆNÜ‘GÑ*¨6Ó2ˆ	æ˜fŸn™n°Ó5Ü˜.¬#×.Ñ.Ø"0Ð!1�ô ˜n¬d×3Ñ3Ø!#�ã%�Ø%×-Ñ-¨cÔ3GÈÓ3LÓM’	ñ &ð Ðr$   r@   )re   rf   rg   rh   ri   rj   rk   rl   rz   rm   rn   ro   s   @r"   rq   rq   d   s$   ø† ñð X§_¡_ð ¸÷ õ r$   rq   c                   ót   • \ rS rSrS\S\S\S\R                  4S jr\	S\
\R                     4S j5       rSrg	)
ÚCustomOptionParseré„   Úidxr   r   r   c                 ó”   • U R                   " U0 UD6nU R                  R                  5         U R                  R                  X5        U$ )z*Insert an OptionGroup at a given position.)Úadd_option_groupÚoption_groupsÚpopr3   )r    r„   r   r   Úgroups        r"   Úinsert_option_groupÚ&CustomOptionParser.insert_option_group…   sD   € ð ×%Ò% tÐ6¨vÑ6ˆà×Ñ×ÑÔ Ø×Ñ×!Ñ! #Ô-àˆr$   c                 ó€   • U R                   SS nU R                   H  nUR                  UR                   5        M      U$ )z<Get a list of all options, including those in option groups.N)Úoption_listr‡   Úextend)r    ÚresÚis      r"   Úoption_list_allÚ"CustomOptionParser.option_list_all�   s;   € ð ×Ñ™qÐ!ˆØ×#Ô#ˆAØ�J‰J�q—}‘}Ö%ñ $ð ˆ
r$   r@   N)re   rf   rg   rh   Úintr   rj   ÚOptionGrouprŠ   Úpropertyr   rk   r‘   rm   r@   r$   r"   r‚   r‚   „   sQ   † ð	Øð	Ø"ð	Ø.1ð	à	×	Ñ	ô	ð ð  h§o¡oÑ!6ó ó ór$   r‚   c                   óø   ^ • \ rS rSrSrSS.S\S\S\S\S	S
4
U 4S jjjrS\	R                  S\S\S	\4S jrS	\\\\4   S
S
4   4S jrS\\\4   S	\\\4   4S jrS	\	R"                  4S jrS\S	S
4S jrSrU =r$ )rv   éš   zoCustom option parser which updates its defaults by checking the
configuration files and environmental variablesF)Úisolatedr   Únamer˜   r   r   Nc                óx   >• Xl         [        U5      U l        U R                   (       d   e[        TU ]  " U0 UD6  g r'   )r™   r   Úconfigr   r   )r    r™   r˜   r   r   r!   s        €r"   r   ÚConfigOptionParser.__init__ž   s4   ø€ ð Œ	Ü# HÓ-ˆŒà�y�yÐˆyÜ‰Ò˜$Ð) &Ó)r$   r%   Úkeyr   c                 ó°   •  UR                  X#5      $ ! [        R                   a.  n[        SU 35        [        R
                  " S5         S nAg S nAff = f)Nz(An error occurred during configuration: é   )Úcheck_valuerj   ÚOptionValueErrorÚprintÚsysÚexit)r    r%   r�   r   Úexcs        r"   Úcheck_defaultÚ ConfigOptionParser.check_default«   sK   € ð	Ø×%Ñ% cÓ/Ð/øÜ×(Ñ(ó 	ÜÐ<¸S¸EÐBÔCÜ�HŠH�Q�K‰Kûð	ús   ‚ “A§$AÁAc              #   ón  #   • SU R                   S/nU Vs0 sH  o"/ _M     nnU R                  R                  5        HS  u  pEU(       d  [        R	                  SU5        M$  UR                  SS5      u  pgXa;   d  M?  X6   R                  Xu45        MU     U H  nX6    H
  u  puXu4v •  M     M     g s  snf 7f)NÚglobalz:env:z7Ignoring configuration key '%s' as it's value is empty.Ú.r   )r™   r›   ÚitemsÚloggerÚdebugra   r0   )r    Úoverride_orderr™   Úsection_itemsÚsection_keyr   Úsectionr�   s           r"   Ú _get_ordered_configuration_itemsÚ3ConfigOptionParser._get_ordered_configuration_items²   sÁ   é € ð # D§I¡I¨wÐ7ˆñ "0ó;
Ù!/˜�"ŠH¡ð 	ð ;
ð !%§¡× 1Ñ 1Ö 3ÑˆKæÜ—‘ØMØôñ à&×,Ñ,¨S°!Ó4‰LˆGØÕ(ØÑ&×-Ñ-¨s¨jÖ9ñ !4ó &ˆGØ)Ô2‘�Ø�h”ó 3ò &ùò#;
ùs   ‚B5–B0¡AB5Á<9B5rx   c           	      ó$  • [         R                  " U R                  5      U l        [	        5       nU R                  5        GHÓ  u  p4U R                  SU-   5      nUc  M  UR                  c   eUR                  S;   a   [        U5      nGOyUR                  S:X  ay  [        [        5         [        U5      nSSS5        [        [        5         [        U5      nSSS5        [        U[        5      (       a  US:  a  U R                  U SU S35        OðUR                  S	:X  a1  UR                  5       nU Vs/ sH  o`R!                  XSU5      PM     nnO¯UR                  S
:X  a�  UR"                  c   eUR%                  UR                  5        UR'                  5       nUR)                  Xt5      nUR*                  =(       d    SnUR,                  =(       d    0 n	UR"                  " XWX@/UQ70 U	D6  OU R!                  XSU5      nXAUR                  '   GMÖ     U H  n[/        U R                  U5      X'   M     SU l        U$ ! [         a    U R                  U SU S35         N`f = f! , (       d  f       GN¹= f! , (       d  f       GN¨= fs  snf )z’Updates the given defaults with values from the config files and
the environ. Does a little special handling for certain types of
options (lists).z--N)Ú
store_trueÚstore_falsez is not a valid value for zO option, please specify a boolean value like yes/no, true/false or 1/0 instead.Úcountr   z† 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.r0   Úcallbackr@   )rj   ÚValuesrx   ÚvaluesÚsetr²   Ú
get_optionr5   Úactionr   Ú
ValueErrorÚerrorr   r“   ru   ra   r¦   r¸   ÚaddÚget_opt_stringÚconvert_valueÚcallback_argsÚcallback_kwargsÚgetattr)
r    rx   Ú	late_evalr�   r   r%   ÚvÚopt_strr   r   s
             r"   rw   Ú#ConfigOptionParser._update_defaultsÎ   s;  € ô —o’o d§m¡mÓ4ˆŒÜ“Eˆ	à×=Ñ=×?‰HˆCà—_‘_ T¨C¡ZÓ0ˆFð
 ‰~Ùà—;‘;Ñ*Ð*Ð*à�}‰}Ð =Ó=ðÜ# C›.’Cð —‘ 'Ó)ÜœjÕ)Ü# C›.�C÷ *äœjÕ)Ü˜c›(�C÷ *ä! #¤s×+Ñ+¨s°Q«wØ—J‘JØ˜%Ð9¸#¸ð ?6ð 6ôøð —‘ (Ó*Ø—i‘i“k�ÙCFÓGÁ3¸a×)Ñ)¨&°qÖ9Á3�ÐG�Ø—‘ *Ó,Ø—‘Ñ2Ð2Ð2Ø—‘˜fŸk™kÔ*Ø ×/Ñ/Ó1�Ø×*Ñ*¨7Ó8�à×+Ñ+×1¨r�Ø×/Ñ/×5°2�Ø—’ °ÐL¸TÒLÀVÓLà×(Ñ(¨°cÓ:�à$'�V—[‘[Ô!ña @ód ˆCÜ# D§K¡K°Ó5ˆH‹Mñ àˆŒØˆøôM "ó Ø—J‘JØ˜%Ð9¸#¸ð ?5ð 5öðú÷ *Ö)úç)Ö)üò Hs0   Á?IÂ+I)ÃI;Ä9JÉ!I&É%I&É)
I8	É;
J
	c                 óŽ  • U R                   (       d   [        R                  " U R                  5      $  U R                  R                  5         U R                  U R                  R                  5       5      nU R                  5        Hq  nUR                  c   eUR                  UR                  5      n[        U[        5      (       d  MD  UR!                  5       nUR#                  XT5      X#R                  '   Ms     [        R                  " U5      $ ! [         a)  nU R                  [        [        U5      5         SnANòSnAff = f)zƒOverriding to make updating the defaults after instantiation of
the option parser possible, _update_defaults() does the dirty work.N)Úprocess_default_valuesrj   r¹   rx   r›   Úloadr   r¤   r
   rl   rw   ÚcopyÚ_get_all_optionsr5   ry   ru   rÁ   r    )r    Úerrrx   r%   ÚdefaultrÈ   s         r"   Úget_default_valuesÚ%ConfigOptionParser.get_default_values  só   € ð ×*×*ä—?’? 4§=¡=Ó1Ð1ð	/Ø�K‰K×ÑÔð ×(Ñ(¨¯©×);Ñ);Ó)=Ó>ˆØ×+Ñ+Ö-ˆFØ—;‘;Ñ*Ð*Ð*Ø—l‘l 6§;¡;Ó/ˆGÜ˜'¤3×'Ó'Ø ×/Ñ/Ó1�Ø(.×(:Ñ(:¸7Ó(L�Ÿ™Ó%ñ .ô �Š˜xÓ(Ð(øô "ó 	/Ø�I‰I”m¤S¨£X×.Ñ.ûð	/ús   ³D Ä
EÄD?Ä?ErI   c                 ót   • U R                  [        R                  5        U R                  [        U S35        g r`   )Úprint_usager£   Ústderrr¤   r
   )r    rI   s     r"   r¿   ÚConfigOptionParser.error$  s(   € Ø×ÑœŸ™Ô$Ø�	‰	”- C 5¨ Õ,r$   )r›   r™   rº   )re   rf   rg   rh   ri   r   rl   Úboolr   rj   rk   r¦   r   r	   r²   r   rw   r¹   rÑ   r¿   rm   rn   ro   s   @r"   rv   rv   š   sÙ   ø† ñ7ð ò	*àð*ð ð*ð ð	*ð
 ð*ð 
÷*ð *ð H§O¡Oð ¸#ð ÀCð ÈCô ðà	�5˜˜c˜‘? D¨$Ð.Ñ	/ôð8>¨¨c°3¨h©ð >¸DÀÀcÀ¹Nô >ð@) H§O¡Oô )ð,-˜ð - ÷ -ò -r$   rv   ) ri   Úloggingrj   r   r£   rG   Ú
contextlibr   Útypingr   r   r   r   r   r	   Úpip._internal.cli.status_codesr
   Úpip._internal.configurationr   r   Úpip._internal.utils.miscr   r   Ú	getLoggerre   r¬   ÚIndentedHelpFormatterr   rq   ÚOptionParserr‚   rv   r@   r$   r"   Ú<module>rá      s}   ðÙ ã Û Û Û 
Û Ý ß >× >å 8ß Iß Dà	×	Ò	˜8Ó	$€ôO$˜(×8Ñ8ô O$ôdÐ$7ô ô@˜×.Ñ.ô ô,L-Ð+õ L-r$   