Ë
    »ÿæi6  ã                  óh  — d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZ ddlmZ ddlmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZ ddlmZmZ  ej>                  e «      Z! G d„ dejD                  «      Z# G d„ de#«      Z$ G d„ dejJ                  «      Z& G d„ de&«      Z'y)zBase option parser setupé    )ÚannotationsN)Ú	Generator)Úsuppress)ÚAnyÚNoReturn©Úescape)ÚTheme)ÚUNKNOWN_ERROR)ÚConfigurationÚConfigurationError)Ú
PipConsole)Úredact_auth_from_urlÚ	strtoboolc                  ó€   ‡ — e Zd ZdZdddddœZddd	œZdˆ fd
„Zdd„Zdd„Zdd„Z	dd„Z
dd„Zdd„Zdˆ fd„Zdd„Zˆ xZS )ÚPrettyHelpFormatterz4A 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                ór   •— d|d<   d|d<   t        j                  «       d   dz
  |d<   t        ‰| �  |i |¤Ž y )Né   Úmax_help_positioné   Úindent_incrementr   é   Úwidth)ÚshutilÚget_terminal_sizeÚsuperÚ__init__)ÚselfÚargsÚkwargsÚ	__class__s      €úm/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/pip/_internal/cli/parser.pyr"   zPrettyHelpFormatter.__init__)   sG   ø€ à&(ˆÐ"Ñ#Ø%&ˆÐ!Ñ"Ü ×2Ñ2Ó4°QÑ7¸!Ñ;ˆˆw‰Ü‰Ñ˜$Ð) &Ó)ó    c                ó  — g }|j                   r"|j                  d|j                   d   › d�«       |j                  r"|j                  d|j                  d   › d�«       t        |«      dkD  r|j	                  dd«       |j                  «       rb|j                  €J ‚|j                  xs |j                  j                  «       }|j                  dt        |j                  «       «      › d�«       d	j                  |«      S )
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Úoptsr2   s       r'   Úformat_option_stringsz)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           	     óÖ  — g }| j                   |   }| j                  | j                  z
  dz
  }t        j                  dd|«      }t        |«      t        |«      z
  }t        |«      |kD  rd| j                  d|fz  }| j                  }nd| j                  d||z   |fz  }d}|j                  |«       |j                  r~| j                  |«      }t        j                  || j                  «      }	|j                  d|d|	d   fz  «       |j                  |	dd D �
cg c]  }
d| j                  d|
fz  ‘Œ c}
«       n|d	   d
k7  r|j                  d
«       dj                  |«      S c c}
w )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Úsubr.   r,   ÚhelpÚexpand_defaultÚtextwrapÚwrapÚ
help_widthÚextendr4   )r#   r5   Úresultr6   Ú	opt_widthÚstrippedÚstyle_tag_lengthÚindent_firstÚ	help_textÚ
help_linesÚlines              r'   Úformat_optionz!PrettyHelpFormatter.format_optionB   sr  € ð ˆØ×"Ñ" 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   ÄE&c                ó0   — |dk(  rydt        |«      z   dz   S )NÚOptionsr*   z[optparse.groups]z:[/]
r   )r#   Úheadings     r'   Úformat_headingz"PrettyHelpFormatter.format_heading`   s!   € Ø�iÒØØ"¤V¨G£_Ñ4°xÑ?Ð?r(   c                ón   — | j                  t        j                  |«      d«      }dt        |«      › d�}|S )zz
        Ensure there is only one newline between usage and the first heading
        if there is no description.
        ú  z
[optparse.groups]Usage:[/] r:   )Úindent_linesrB   Údedentr	   )r#   ÚusageÚcontentsÚmsgs       r'   Úformat_usagez PrettyHelpFormatter.format_usagee   s8   € ð
 ×$Ñ$¤X§_¡_°UÓ%;¸TÓBˆØ-¬f°XÓ.>Ð-?¸rÐBˆØˆ
r(   c                óÞ   — |rkt        | j                  d«      rd}nd}|j                  d«      }|j                  «       }| j	                  t        j                  |«      d«      }|› d|› d�}|S y)NÚmainz[optparse.groups]Commands:[/]z [optparse.groups]Description:[/]r:   rT   r*   )ÚhasattrÚparserÚlstripÚrstriprU   rB   rV   )r#   ÚdescriptionÚlabels      r'   Úformat_descriptionz&PrettyHelpFormatter.format_descriptionn   ss   € áÜ�t—{‘{ FÔ+Ø7‘à:�ð &×,Ñ,¨TÓ2ˆKà%×,Ñ,Ó.ˆKà×+Ñ+¬H¯O©O¸KÓ,HÈ$ÓOˆKØ"˜G 2 k ]°"Ð5ˆKØÐàr(   c                ó   — |rt        |«      S y)Nr*   r   )r#   Úepilogs     r'   Úformat_epilogz!PrettyHelpFormatter.format_epilog�   s   € áÜ˜&“>Ð!àr(   c                ó²   •— t        t        ‰| �	  |«      «      }| j                  j	                  «       D ]   \  }}t        j                  |d|› d�|«      }Œ" |S )z@Overridden HelpFormatter.expand_default() which colorizes flags.z
[optparse.z] \1[/])r	   r!   rA   Ú
highlightsÚitemsr>   r?   )r#   r5   r@   ÚregexÚstyler&   s        €r'   rA   z"PrettyHelpFormatter.expand_defaultˆ   sR   ø€ ä”e‘gÑ,¨VÓ4Ó5ˆØ ŸO™O×1Ñ1Ö3‰LˆE�5Ü—6‘6˜% J¨u¨g°WÐ!=¸tÓD‰Dð 4àˆr(   c                óp   — |j                  d«      D �cg c]  }||z   ‘Œ	 }}dj                  |«      S c c}w ©Nr:   )Úsplitr4   )r#   ÚtextÚindentrM   Ú	new_liness        r'   rU   z PrettyHelpFormatter.indent_lines�   s:   € Ø/3¯z©z¸$Ô/?Ó@Ñ/? t�V˜d“]Ð/?ˆ	Ð@Ø�y‰y˜Ó#Ð#ùò As   ”3)r$   r   r%   r   ÚreturnÚNone©r5   úoptparse.Optionrr   Ústr)rQ   rv   rr   rv   )rW   rv   rr   rv   )ra   ú
str | Nonerr   rv   )re   rw   rr   rv   )ro   rv   rp   rv   rr   rv   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústylesrh   r"   r7   rN   rR   rZ   rc   rf   rA   rU   Ú__classcell__©r&   s   @r'   r   r      sX   ø„ Ù>ð &Ø#Ø&Ø$ñ	€Fð !,Ø *ñ€Jõ
*óó$ó<@ó
óó&õ÷$r(   r   c                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )ÚUpdatingDefaultsHelpFormatterzÚ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                ó  •— d }| j                   �ˆt        | j                   t        «      sJ ‚| j                   j                  | j                   j                  «       |j
                  €J ‚| j                   j                  j                  |j
                  «      }t        ‰| �!  |«      }|rV|j                  dk(  rGt        |t        «      r|g}t        |t        «      sg }|D ]  }|j                  |t        |«      «      }Œ |S )NÚURL)r^   Ú
isinstanceÚConfigOptionParserÚ_update_defaultsÚdefaultsr1   Úgetr!   rA   r2   rv   ÚlistÚreplacer   )r#   r5   Údefault_valuesrK   Úvalr&   s        €r'   rA   z,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Ø!#�ã%�Ø%×-Ñ-¨cÔ3GÈÓ3LÓM‘	ð &ð Ðr(   rt   )rx   ry   rz   r{   rA   r}   r~   s   @r'   r€   r€   ”   s   ø„ ñ÷ñ r(   r€   c                  ó6   — e Zd Z	 	 	 	 	 	 	 	 dd„Zedd„«       Zy)ÚCustomOptionParserc                ó–   —  | j                   |i |¤Ž}| j                  j                  «        | j                  j                  ||«       |S )z*Insert an OptionGroup at a given position.)Úadd_option_groupÚoption_groupsÚpopr/   )r#   Úidxr$   r%   Úgroups        r'   Úinsert_option_groupz&CustomOptionParser.insert_option_groupµ   sH   € ð &�×%Ñ% tÐ6¨vÑ6ˆà×Ñ×ÑÔ Ø×Ñ×!Ñ! # uÔ-àˆr(   c                ó|   — | j                   dd }| j                  D ]  }|j                  |j                   «       Œ |S )z<Get a list of all options, including those in option groups.N)Úoption_listr�   rE   )r#   ÚresÚis      r'   Úoption_list_allz"CustomOptionParser.option_list_allÀ   s;   € ð ×Ñ™qÐ!ˆØ×#Ô#ˆAØ�J‰J�q—}‘}Õ%ð $ð ˆ
r(   N)r’   Úintr$   r   r%   r   rr   zoptparse.OptionGroup)rr   zlist[optparse.Option])rx   ry   rz   r”   Úpropertyr™   © r(   r'   r�   r�   ´   s;   „ ð	Øð	Ø"ð	Ø.1ð	à	ó	ð òó ñr(   r�   c                  ór   ‡ — e Zd ZdZddœ	 	 	 	 	 	 	 	 	 dˆ fd„Zdd„Z	 	 dd„Zdd„Zdd„Zdd	„Z	ddd
„Z
ˆ xZS )r„   zsCustom option parser which updates its defaults by checking the
    configuration files and environmental variablesF)Úisolatedc               ón   •— || _         t        |«      | _        | j                   sJ ‚t        ‰| �  |i |¤Ž y ©N)Únamer   Úconfigr!   r"   )r#   r¡   rž   r$   r%   r&   s        €r'   r"   zConfigOptionParser.__init__Î   s6   ø€ ð ˆŒ	Ü# HÓ-ˆŒà�yŠyÐˆyÜ‰Ñ˜$Ð) &Ó)r(   c                ó®   — 	 |j                  ||«      S # t        j                  $ r-}t        d|› �«       t	        j
                  d«       Y d }~y d }~ww xY w)Nz(An error occurred during configuration: é   )Úcheck_valueÚoptparseÚOptionValueErrorÚprintÚsysÚexit)r#   r5   Úkeyr‹   Úexcs        r'   Úcheck_defaultz ConfigOptionParser.check_defaultÛ   sM   € ð	Ø×%Ñ% c¨3Ó/Ð/øÜ×(Ñ(ò 	ÜÐ<¸S¸EÐBÔCÜ�H‰H�Q�K‰Kûð	ús   ‚ ”A§#AÁAc              #  óÌ  K  — d| j                   dg}|D �ci c]  }|i “Œ }}| j                  j                  «       D ]?  \  }}|j                  «       D ]'  \  }}|j                  dd«      \  }}	||v sŒ |||   |	<   Œ) ŒA |D ��
�ci c].  }|||   j                  «       D �
�cg c]  \  }
}|sŒ	|
|f‘Œ c}}
“Œ0 }}
}}|D ]  }||   E d {  –—†  Œ y c c}w c c}}
w c c}}
}w 7 Œ­w)NÚglobalz:env:Ú.r   )r¡   r¢   ri   rn   )r#   Úoverride_orderr¡   Úsection_items_dictÚ_ÚvalueÚsection_keyr‹   Úsectionr«   ÚkÚvÚsection_itemss                r'   Ú _get_ordered_configuration_itemsz3ConfigOptionParser._get_ordered_configuration_itemsâ   s  è ø€ ð # D§I¡I¨wÐ7ˆñ "0ó9
Ù!/˜ˆD�"‰H ð 	ð 9
ð Ÿ™×)Ñ)Ö+‰HˆAˆuØ$)§K¡K¦MÑ �˜Sà*×0Ñ0°°aÓ8‘�˜Ø˜nÒ,Ø7:Ð& wÑ/°Ò4ñ	 %2ð ,ñ 'õ
á&�ð Ð&8¸Ñ&>×&DÑ&DÔ&FÔLÑ&F™d˜a Ê!�A�q’6Ð&FÒLÑLØ&ð 	ò 
ó &ˆGØ$ WÑ-×-Ñ-ñ &ùò'9
ùó Mùô
ð .úsL   ‚C$–
C AC$Á2C$ÂCÂ 
CÂ+CÂ1CÂ7C$ÃC"Ã	C$ÃCÃC$c           	     óà  — t        j                  | j                  «      | _        t	        «       }| j                  «       D �]¿  \  }}| j                  d|z   «      }|€Œ|j                  €J ‚|j                  dv r	 t        |«      }�ni|j                  dk(  rst        t        «      5  t        |«      }ddd«       t        t        «      5  t        |«      }ddd«       t        |t        «      r|dk  rÿ| j                  |› d|› d�«       nç|j                  d	k(  r1|j                  «       }|D �cg c]  }| j!                  |||«      ‘Œ }}n§|j                  d
k(  r…|j"                  €J ‚|j%                  |j                  «       |j'                  «       }|j)                  ||«      }|j*                  xs d}|j,                  xs i }	 |j"                  |||| g|¢­i |	¤Ž n| j!                  |||«      }|||j                  <   �ŒÂ |D ]  }t/        | j                  |«      ||<   Œ d| _        |S # t        $ r | j                  |› d|› d�«       Y Œ]w xY w# 1 sw Y   �Œ¢xY w# 1 sw Y   �ŒŒxY wc c}w )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_optionr1   Úactionr   Ú
ValueErrorÚerrorr   rš   rƒ   rn   r­   r¿   ÚaddÚget_opt_stringÚconvert_valueÚcallback_argsÚcallback_kwargsÚgetattr)
r#   r†   Ú	late_evalr«   r‹   r5   r¸   Úopt_strr$   r%   s
             r'   r…   z#ConfigOptionParser._update_defaults  sI  € ô —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�t×)Ñ)¨&°#°qÕ9À3�ÑGØ—‘ *Ò,Ø—‘Ð2Ð2Ð2Ø—‘˜fŸk™kÔ*Ø ×/Ñ/Ó1�Ø×*Ñ*¨7°CÓ8�à×+Ñ+Ò1¨r�Ø×/Ñ/Ò5°2�Ø�—‘ ¨°°dÐL¸TÒLÀVÓLà×(Ñ(¨°°cÓ:�à$'ˆH�V—[‘[Ó!ða @ód ˆCÜ# D§K¡K°Ó5ˆH�SŠMð àˆŒØˆøôM "ò Ø—J‘JØ˜%Ð9¸#¸ð ?5ð 5öðú÷ *Ñ)úç)Ñ)üò Hs0   Á:H+Â%IÃIÄ,I+È+ IÉIÉI	ÉI(	c                óp  — | j                   st        j                  | j                  «      S 	 | j                  j                  «        | j                  | j                  j                  «       «      }| j                  «       D ]k  }|j                  €J ‚|j                  |j                  «      }t        |t        «      sŒ=|j!                  «       }|j#                  ||«      ||j                  <   Œm t        j                  |«      S # t        $ r)}| j                  t        t        |«      «       Y d}~Œéd}~ww xY w)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   rv   r…   ÚcopyÚ_get_all_optionsr1   r‡   rƒ   rÈ   r¥   )r#   Úerrr†   r5   ÚdefaultrÎ   s         r'   Úget_default_valuesz%ConfigOptionParser.get_default_valuesA  sô   € ð ×*Ò*ä—?‘? 4§=¡=Ó1Ð1ð	/Ø�K‰K×ÑÔð ×(Ñ(¨¯©×);Ñ);Ó)=Ó>ˆØ×+Ñ+Ö-ˆFØ—;‘;Ð*Ð*Ð*Ø—l‘l 6§;¡;Ó/ˆGÜ˜'¤3Õ'Ø ×/Ñ/Ó1�Ø(.×(:Ñ(:¸7ÀGÓ(L�˜Ÿ™Ò%ð .ô �‰˜xÓ(Ð(øô "ò 	/Ø�I‰I”m¤S¨£X×.Ñ.ûð	/ús   ­D Ä	D5ÄD0Ä0D5c                ót   — | j                  t        j                  «       | j                  t        |› d�«       y rm   )Úprint_usager©   Ústderrrª   r   )r#   rY   s     r'   rÆ   zConfigOptionParser.errorW  s(   € Ø×ÑœŸ™Ô$Ø�	‰	”- C 5¨ Õ,r(   c                óh  — dt         j                  v xsJ t        t        t        j
                  j                  dd«      xs d«      «      xs dt        j
                  v }t        t        t        j                  «      ||¬«      }|j                  | j                  «       j                  «       d¬«       y )Nz
--no-colorÚPIP_NO_COLORÚnoÚNO_COLOR)ÚthemeÚno_colorÚfileF)Ú	highlight)r©   ÚargvÚboolr   ÚosÚenvironr‡   r   r
   r   r|   r¨   Úformat_helpr`   )r#   rà   rß   Úconsoles       r'   Ú
print_helpzConfigOptionParser.print_help[  s�   € ð œCŸH™HÐ$ò (Ü”IœbŸj™jŸn™n¨^¸TÓBÒJÀdÓKÓLò(àœRŸZ™ZÐ'ð 	ô
 ÜÔ+×2Ñ2Ó3¸hÈTô
ˆð 	�‰�d×&Ñ&Ó(×/Ñ/Ó1¸UˆÕCr(   )
r$   r   r¡   rv   rž   rã   r%   r   rr   rs   )r5   ru   r«   rv   r‹   r   rr   r   )rr   z&Generator[tuple[str, Any], None, None])r†   údict[str, Any]rr   ré   )rr   zoptparse.Values)rY   rv   rr   r   r    )rà   r   rr   rs   )rx   ry   rz   r{   r"   r­   rº   r…   rÖ   rÆ   rè   r}   r~   s   @r'   r„   r„   Ê   sp   ø„ ñ7ð ñ	*àð*ð ð*ð ð	*ð
 ð*ð 
õ*óð.à	/ó.ó>>ó@)ó,-÷Dð Dr(   r„   )(r{   Ú
__future__r   Úloggingr¦   rä   r>   r   r©   rB   Ú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   Ú	getLoggerrx   ÚloggerÚIndentedHelpFormatterr   r€   ÚOptionParserr�   r„   rœ   r(   r'   Ú<module>rù      s“   ðÙ å "ã Û Û 	Û 	Û Û 
Û Ý %Ý ß  å *Ý (å 8ß IÝ 2ß Dà	ˆ×	Ñ	˜8Ó	$€ôv$˜(×8Ñ8ô v$ôrÐ$7ô ô@˜×.Ñ.ô ô,\DÐ+õ \Dr(   