ó
    T=ŒjC7  ã                  óh  • S r SSKJr  SSKrSSK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  SSKJrJr  SSKJr  SSKJr  SS	KJr  SS
KJrJr  SSKJr  SSKJrJr  \R>                  " \ 5      r! " S S\RD                  5      r# " S S\#5      r$ " S S\RJ                  5      r& " S S\&5      r'g)zBase option parser setupé    )ÚannotationsN)Ú	Generator)Úsuppress)ÚAnyÚNoReturn©Úescape)ÚTheme)ÚUNKNOWN_ERROR)ÚConfigurationÚConfigurationError)Ú
PipConsole)Úredact_auth_from_urlÚ	strtoboolc                  óž   ^ • \ rS rSrSrSSSSS.rSS	S
.rSU 4S jjrSS jrSS jr	SS jr
SS jrSS jrSS jrSU 4S jjrSS jrSrU =r$ )ÚPrettyHelpFormatteré   z4A prettier/less verbose help formatter for optparse.ÚgreenÚcyanz	bold blueÚyellow)zoptparse.shortargszoptparse.longargszoptparse.groupszoptparse.metavarÚ	shortargsÚlongargs)z\s(-{1}[\w]+[\w-]*)z\s(-{2}[\w]+[\w-]*)c                ó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__)ÚselfÚargsÚkwargsÚ	__class__s      €Ú\/Users/stevendouglas/BidBrain/.venv/lib/python3.13/site-packages/pip/_internal/cli/parser.pyr#   ÚPrettyHelpFormatter.__init__)   sG   ø€ à&(ˆÐ"Ñ#Ø%&ˆÐ!Ñ"Ü ×2Ò2Ó4°QÑ7¸!Ñ;ˆˆw‰Ü‰Ò˜$Ð) &Ó)ó    c                ó0  • / nUR                   (       a"  UR                  SUR                   S    S35        UR                  (       a"  UR                  SUR                  S    S35        [        U5      S:”  a  UR	                  SS5        UR                  5       (       ah  UR                  c   eUR                  =(       d    UR                  R                  5       nUR                  S[        UR                  5       5       S35        S	R                  U5      $ )
z=Return a comma-separated list of option strings and metavars.z[optparse.shortargs]r   z[/]z[optparse.longargs]r   z, z [optparse.metavar]<z>[/]Ú )Ú_short_optsÚappendÚ
_long_optsÚlenÚinsertÚtakes_valueÚdestÚmetavarÚlowerr	   Újoin)r$   ÚoptionÚoptsr4   s       r(   Úformat_option_stringsÚ)PrettyHelpFormatter.format_option_strings0   sà   € àˆà××Ø�K‰KÐ.¨v×/AÑ/AÀ!Ñ/DÐ.EÀSÐIÔJØ××Ø�K‰KÐ-¨f×.?Ñ.?ÀÑ.BÐ-CÀ3ÐGÔHÜˆt‹9�q‹=Ø�K‰K˜˜4Ô à×Ñ×ÑØ—;‘;Ñ*Ð*Ð*Ø—n‘n×;¨¯©×(9Ñ(9Ó(;ˆGØ�K‰KÐ.¬v°g·m±m³oÓ/FÐ.GÀtÐLÔMà�w‰w�t‹}Ðr*   c           	     óê  • / nU R                   U   nU R                  U R                  -
  S-
  n[        R                  " SSU5      n[        U5      [        U5      -
  n[        U5      U:”  a  SU R                  SU4-  nU R                  nOSU R                  SXF-   U4-  nSnUR                  U5        UR                  (       a�  U R                  U5      n[        R                  " X€R                  5      n	UR                  SUSU	S   4-  5        UR                  U	SS  V
s/ s H  n
SU R                  SU
4-  PM     sn
5        OUS	   S
:w  a  UR                  S
5        SR                  U5      $ s  sn
f )z$Overridden method with Rich support.r   z(\[[a-z.]+\])|(\[\/\])r,   z%*s%s
z	%*s%-*s  r   r   NéÿÿÿÿÚ
)Úoption_stringsÚhelp_positionÚcurrent_indentÚreÚsubr0   r.   ÚhelpÚexpand_defaultÚtextwrapÚwrapÚ
help_widthÚextendr6   )r$   r7   Úresultr8   Ú	opt_widthÚstrippedÚstyle_tag_lengthÚindent_firstÚ	help_textÚ
help_linesÚlines              r(   Úformat_optionÚ!PrettyHelpFormatter.format_optionB   sm  € ð ˆØ×"Ñ" 6Ñ*ˆØ×&Ñ&¨×)<Ñ)<Ñ<¸qÑ@ˆ	ô —6’6Ð3°R¸Ó>ˆÜ˜t›9¤s¨8£}Ñ4ÐÜˆx‹=˜9Ó$Ø × 3Ñ 3°R¸Ð>Ñ>ˆDØ×-Ñ-‰Là $×"5Ñ"5°rØ"+Ñ">Àð"Fñ FˆDàˆLØ�‰�dÔØ�;�;Ø×+Ñ+¨FÓ3ˆIÜ!Ÿš y·/±/ÓBˆJØ�M‰M˜) |°R¸ÀA¹Ð&GÑGÔHØ�M‰MØ'1°!°"¡~ó7Ú'5˜tð %¨×(:Ñ(:¸BÀÐ'EÔEÙ'5ñ7õ 8à�"‰X˜ÓØ�M‰M˜$ÔØ�w‰w�v‹Ðùò	7s   Ä!E0c                ó2   • US:X  a  gS[        U5      -   S-   $ )NÚOptionsr,   z[optparse.groups]z:[/]
r   )r$   Úheadings     r(   Úformat_headingÚ"PrettyHelpFormatter.format_heading`   s!   € Ø�iÓØØ"¤V¨G£_Ñ4°xÑ?Ð?r*   c                óp   • U R                  [        R                  " U5      S5      nS[        U5       S3nU$ )zb
Ensure there is only one newline between usage and the first heading
if there is no description.
ú  z
[optparse.groups]Usage:[/] r=   )Úindent_linesrE   Údedentr	   )r$   ÚusageÚcontentsÚmsgs       r(   Úformat_usageÚ PrettyHelpFormatter.format_usagee   s8   € ð
 ×$Ñ$¤X§_¢_°UÓ%;¸TÓBˆØ-¬f°XÓ.>Ð-?¸rÐBˆØˆ
r*   c                óô   • 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Úmainz[optparse.groups]Commands:[/]z [optparse.groups]Description:[/]r=   rY   r,   )ÚhasattrÚparserÚlstripÚrstriprZ   rE   r[   )r$   ÚdescriptionÚlabels      r(   Úformat_descriptionÚ&PrettyHelpFormatter.format_descriptionn   sv   € æÜ�t—{‘{ F×+Ñ+Ø7‘à:�ð &×,Ñ,¨TÓ2ˆKà%×,Ñ,Ó.ˆKà×+Ñ+¬H¯OªO¸KÓ,HÈ$ÓOˆKØ"˜G 2 k ]°"Ð5ˆKØÐàr*   c                ó(   • U(       a  [        U5      $ g)Nr,   r   )r$   Úepilogs     r(   Úformat_epilogÚ!PrettyHelpFormatter.format_epilog�   s   € æÜ˜&“>Ð!àr*   c                ó¶   >• [        [        TU ]	  U5      5      nU R                  R	                  5        H!  u  p4[
        R                  " USU S3U5      nM#     U$ )z@Overridden HelpFormatter.expand_default() which colorizes flags.z
[optparse.z] \1[/])r	   r"   rD   Ú
highlightsÚitemsrA   rB   )r$   r7   rC   ÚregexÚstyler'   s        €r(   rD   Ú"PrettyHelpFormatter.expand_defaultˆ   sP   ø€ ä”e‘gÑ,¨VÓ4Ó5ˆØ ŸO™O×1Ñ1Ö3‰LˆEÜ—6’6˜% J¨u¨g°WÐ!=¸tÓDŠDñ 4àˆr*   c                ót   • UR                  S5       Vs/ s H  o2U-   PM	     nnSR                  U5      $ s  snf ©Nr=   )Úsplitr6   )r$   ÚtextÚindentrP   Ú	new_liness        r(   rZ   Ú PrettyHelpFormatter.indent_lines�   s8   € Ø/3¯z©z¸$Ô/?Ó@Ò/? t˜d”]Ñ/?ˆ	Ð@Ø�y‰y˜Ó#Ð#ùò As   ”5© )r%   r   r&   r   ÚreturnÚNone©r7   úoptparse.Optionr}   Ústr)rU   r�   r}   r�   )r\   r�   r}   r�   )rg   ú
str | Noner}   r�   )rl   r‚   r}   r�   )rx   r�   ry   r�   r}   r�   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ústylesrp   r#   r9   rQ   rV   r_   ri   rm   rD   rZ   Ú__static_attributes__Ú__classcell__©r'   s   @r(   r   r      s]   ø† Ù>ð &Ø#Ø&Ø$ñ	€Fð !,Ø *ñ€J÷
*ôô$ô<@ô
ôô&÷÷$ò $r*   r   c                  ó0   ^ • \ rS rSrSrSU 4S jjrSrU =r$ )ÚUpdatingDefaultsHelpFormatteré”   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
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)rd   Ú
isinstanceÚConfigOptionParserÚ_update_defaultsÚdefaultsr3   Úgetr"   rD   r4   r�   ÚlistÚreplacer   )r$   r7   Údefault_valuesrN   Úvalr'   s        €r(   rD   Ú,UpdatingDefaultsHelpFormatter.expand_default�   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|   r   )rƒ   r„   r…   r†   r‡   rD   r‰   rŠ   r‹   s   @r(   r�   r�   ”   s   ø† ñ÷õ r*   r�   c                  óB   • \ rS rSr        SS jr\SS j5       rSrg)ÚCustomOptionParseré´   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Úpopr1   )r$   Úidxr%   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    rH   )r$   ÚresÚis      r(   Úoption_list_allÚ"CustomOptionParser.option_list_allÀ   s;   € ð ×Ñ™qÐ!ˆØ×#Ô#ˆAØ�J‰J�q—}‘}Ö%ñ $ð ˆ
r*   r|   N)r¢   Úintr%   r   r&   r   r}   zoptparse.OptionGroup)r}   zlist[optparse.Option])rƒ   r„   r…   r†   r¤   Úpropertyrª   r‰   r|   r*   r(   rœ   rœ   ´   s;   † ð	Øð	Ø"ð	Ø.1ð	à	ô	ð óó ór*   rœ   c                  óª   ^ • \ rS rSrSrSS.         SU 4S jjjrSS jr  SS jrSS jrSS	 jr	SS
 jr
SSS jjrSSS jjrSSS jjrSrU =r$ )r’   éÊ   zoCustom option parser which updates its defaults by checking the
configuration files and environmental variablesF)Úisolatedc               óx   >• Xl         [        U5      U l        U R                   (       d   e[        TU ]  " U0 UD6  g ©N)Únamer   Úconfigr"   r#   )r$   r³   r°   r%   r&   r'   s        €r(   r#   ÚConfigOptionParser.__init__Î   s4   ø€ ð Œ	Ü# HÓ-ˆŒà�y�yÐˆyÜ‰Ò˜$Ð) &Ó)r*   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_valueÚoptparseÚOptionValueErrorÚprintÚsysÚexit)r$   r7   Úkeyr™   Úexcs        r(   Úcheck_defaultÚ ConfigOptionParser.check_defaultÛ   sK   € ð	Ø×%Ñ% cÓ/Ð/øÜ×(Ñ(ó 	ÜÐ<¸S¸EÐBÔCÜ�HŠH�Q�K‰Kûð	ús   ‚ “A§$AÁAc              #  óè  #   • SU R                   S/nU Vs0 s H  o"0 _M     nnU R                  R                  5        H@  u  pEUR                  5        H'  u  pgUR                  SS5      u  p‰X�;   d  M   XsU   U	'   M)     MB     U VV
Vs0 s H5  nX#U   R                  5        V
Vs/ s H  u  p«U(       d  M  X«4PM     snn
_M7     nn
nnU H  nXÈ    S h  v•N   M     g s  snf s  snn
f s  snn
nf  N7f)NÚglobalz:env:Ú.r   )r³   r´   rq   rw   )r$   Úoverride_orderr³   Úsection_items_dictÚ_ÚvalueÚsection_keyr™   Úsectionr¾   ÚkÚvÚsection_itemss                r(   Ú _get_ordered_configuration_itemsÚ3ConfigOptionParser._get_ordered_configuration_itemsâ   s  é € ð # D§I¡I¨wÐ7ˆñ "0ó9
Ú!/˜�"ŠH¡ð 	ð 9
ð Ÿ™×)Ñ)Ö+‰HˆAØ$)§K¡K¦MÑ �à*×0Ñ0°°aÓ8‘�ØÕ,Ø7: wÑ/°Ó4ó	 %2ñ ,ñ 'õ
â&�ð ¸Ñ&>×&DÑ&DÔ&FÔLÒ&F™d˜aÌ!“6�A“6Ñ&FÒLÒLÙ&ð 	ò 
ó &ˆGØ$Ñ-×-Ò-ò &ùò'9
ùó Mùô
ñ .ùsL   ‚C2–C¢AC2Á3C2ÂC)Â$C#Â5C#Â<C)ÃC2ÃC0ÃC2Ã#C)Ã)C2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OzU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  a2  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.r.   Úcallbackr|   )r¹   ÚValuesr”   ÚvaluesÚsetrÎ   Ú
get_optionr3   Úactionr   Ú
ValueErrorÚerrorr   r¬   r‘   rw   rÀ   rÔ   ÚaddÚget_opt_stringÚconvert_valueÚcallback_argsÚcallback_kwargsÚgetattr)
r$   r”   Ú	late_evalr¾   r™   r7   rÌ   Úopt_strr%   r&   s
             r(   r“   Ú#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'É*
I9	É<
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_valuesr¹   rÕ   r”   r´   Úloadr   r½   r   r�   r“   ÚcopyÚ_get_all_optionsr3   r•   r‘   rÝ   r¸   )r$   Úerrr”   r7   Údefaultrã   s         r(   Úget_default_valuesÚ%ConfigOptionParser.get_default_valuesA  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c                ót   • U R                  [        R                  5        U R                  [        U S35        g rv   )Úprint_usager¼   Ústderrr½   r   )r$   r^   s     r(   rÛ   ÚConfigOptionParser.errorW  s(   € Ø×ÑœŸ™Ô$Ø�	‰	”- C 5¨ Õ,r*   c                ó"  • S[         R                  ;   =(       dU    [        [        [        R
                  R                  SS5      =(       d    S5      5      =(       d    S[        R
                  ;   n[        [        [        R                  5      X!S9$ )Nz
--no-colorÚPIP_NO_COLORÚnoÚNO_COLOR)ÚthemeÚno_colorÚfile)r¼   ÚargvÚboolr   ÚosÚenvironr•   r   r
   r   rˆ   )r$   rø   r÷   s      r(   Ú_create_console_for_helpÚ+ConfigOptionParser._create_console_for_help[  sl   € ð œCŸH™HÑ$÷ (Ü”IœbŸj™jŸn™n¨^¸TÓB×JÀdÓKÓL÷(àœRŸZ™ZÑ'ð 	ô
 ÜÔ+×2Ñ2Ó3¸hñ
ð 	
r*   c                ó†   • U R                   (       a0  U R                  U5      nUR                  U R                  5       SS9  g g ©NF)Ú	highlight)r\   rý   r»   Ú	get_usage©r$   rø   Úconsoles      r(   rï   ÚConfigOptionParser.print_usageg  s5   € Ø�:�:Ø×3Ñ3°DÓ9ˆGØ�M‰M˜$Ÿ.™.Ó*°eˆMÒ<ð r*   c                ó~   • U R                  U5      nUR                  U R                  5       R                  5       SS9  g r   )rý   r»   Úformat_helprf   r  s      r(   Ú
print_helpÚConfigOptionParser.print_helpl  s4   € Ø×/Ñ/°Ó5ˆØ�‰�d×&Ñ&Ó(×/Ñ/Ó1¸UˆÒCr*   )r´   r³   rÖ   )
r%   r   r³   r�   r°   rú   r&   r   r}   r~   )r7   r€   r¾   r�   r™   r   r}   r   )r}   z&Generator[tuple[str, Any], None, None])r”   údict[str, Any]r}   r
  )r}   zoptparse.Values)r^   r�   r}   r   r²   )rø   r   r}   r   )rø   r   r}   r~   )rƒ   r„   r…   r†   r‡   r#   rÀ   rÎ   r“   rì   rÛ   rý   rï   r  r‰   rŠ   r‹   s   @r(   r’   r’   Ê   s   ø† ñ7ð ñ	*àð*ð ð*ð ð	*ð
 ð*ð 
÷*ð *ôð.à	/ô.ô>>ô@)ô,-ö

ö=÷
Dô Dr*   r’   )(r‡   Ú
__future__r   Úloggingr¹   rû   rA   r    r¼   rE   Úcollections.abcr   Ú
contextlibr   Útypingr   r   Úpip._vendor.rich.markupr	   Úpip._vendor.rich.themer
   Úpip._internal.cli.status_codesr   Úpip._internal.configurationr   r   Úpip._internal.utils.loggingr   Úpip._internal.utils.miscr   r   Ú	getLoggerrƒ   ÚloggerÚIndentedHelpFormatterr   r�   ÚOptionParserrœ   r’   r|   r*   r(   Ú<module>r     s‘   ðÙ å "ã Û Û 	Û 	Û Û 
Û Ý %Ý ß  å *Ý (å 8ß IÝ 2ß Dà	×	Ò	˜8Ó	$€ôv$˜(×8Ñ8ô v$ôrÐ$7ô ô@˜×.Ñ.ô ô,dDÐ+õ dDr*   