ó
    T=Œj)#  ã                  ó  • S SK Jr  S SKrS SKrS SKrS SKrS SKJrJrJ	r	  S SK
Jr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  S S	KJr  \\\-     rSS
 jrSS jrSS jr         S                       SS jjrSS jr g)é    )ÚannotationsN)ÚCallableÚIterableÚMapping)ÚAnyÚLiteral)Úescape)ÚSpinnerInterfaceÚopen_spinner)ÚInstallationSubprocessError)ÚVERBOSEÚsubprocess_logger)Ú
HiddenTextc                 óŽ   • / nU  H<  n[        U[        5      (       a  UR                  U5        M+  UR                  U5        M>     U$ )z
Create a CommandArgs object.
)Ú
isinstanceÚlistÚextendÚappend)ÚargsÚcommand_argsÚargs      Úb/Users/stevendouglas/BidBrain/.venv/lib/python3.13/site-packages/pip/_internal/utils/subprocess.pyÚmake_commandr      sH   € ð !#€LÛˆô �cœ4× Ñ Ø×Ñ Ö$ð ×Ñ Ö$ñ ð Ðó    c                ó2   • SR                  S U  5       5      $ )z'
Format command arguments for display.
Ú c              3  ó¶   #   • U  HO  n[        U[        5      (       a  [        R                  " [	        U5      5      O[        R                  " U5      v •  MQ     g 7f)N)r   r   ÚshlexÚquoteÚstr)Ú.0r   s     r   Ú	<genexpr>Ú&format_command_args.<locals>.<genexpr>.   s>   é € ð âˆCô ",¨C´×!<Ñ!<Œ�Š”C˜“HÔÄ%Ç+Â+ÈcÓBRÔRÚùs   ‚AA)Újoin)r   s    r   Úformat_command_argsr%   %   s"   € ð �8‰8ñ áóó ð r   c                ót   • U  Vs/ s H&  n[        U[        5      (       a  UR                  OUPM(     sn$ s  snf )z5
Return the arguments in their raw, unredacted form.
)r   r   Úsecret)r   r   s     r   Úreveal_command_argsr(   4   s3   € ñ KOÓOÊ$À3œ* S¬*×5Ñ5ˆC�JŠJ¸3Ò>É$ÑOÐOùÒOs   …-5c
               ó¨  • Uc  / nUc  / nU(       a!  [         R                  n[        R                  nO[         R                  n[
        n[         R                  " 5       U:*  nU(       + =(       a    USLnU" SU
5        [        R                  R                  5       nU(       a  UR                  U5        U H  nUR                  US5        M      [        R                  " [        U 5      [        R                  [        R                  U	(       d  [        R                   O[        R                  UUSSS9n/ nU	(       dÿ  UR&                  (       d   eUR(                  (       d   eUR(                  R+                  5          UR&                  R-                  5       nU(       d  ONUR/                  5       nUR1                  US-   5        U" U5        U(       a  U(       d   eUR3                  5         Mp   UR5                  5         UR&                  (       a  UR&                  R+                  5         S	R7                  U5      nOuUR9                  5       u  nnUR;                  5        H  nU" U5        M     UR1                  U5        UR;                  5        H  nU" U5        M     UR1                  U5        UnUR<                  =(       a    UR<                  U;  nU(       a3  U(       d   eU(       a  UR?                  S
5        OUR?                  S5        U(       aÜ  US:X  a“  [A        U
UR<                  U(       d  UOSS9nU(       al  [         RB                  " SUSS0S9  [         R                  " S[E        [G        U 5      5      SS0S9  [         R                  " S[E        U=(       d    S5      SS0S9  UeUS:X  a%  [         RH                  " SU
UR<                  U5        U$ US:X  a   U$ [K        SU< 35      eU$ ! ["         a%  nU(       a  [         R$                  " SUU
5        e SnAff = f! UR&                  (       a  UR&                  R+                  5         f f = f)a�  
Args:
  show_stdout: if true, use INFO to log the subprocess's stderr and
    stdout streams.  Otherwise, use DEBUG.  Defaults to False.
  extra_ok_returncodes: an iterable of integer return codes that are
    acceptable, in addition to 0. Defaults to None, which means [].
  unset_environ: an iterable of environment variable names to unset
    prior to calling subprocess.Popen().
  log_failed_cmd: if false, failed commands are not logged, only raised.
  stdout_only: if true, return only stdout, else return both. When true,
    logging of both stdout and stderr occurs when the subprocess has
    terminated, else logging occurs as subprocess output is produced.
NzRunning command %sÚlocaleÚbackslashreplace)ÚstdinÚstdoutÚstderrÚcwdÚenvÚencodingÚerrorsz#Error %s while executing command %sTÚ
Ú ÚerrorÚdoneÚraise)Úcommand_descriptionÚ	exit_codeÚoutput_linesz%sÚrich)Úextraz*[bold magenta]full command[/]: [blue]%s[/]Úmarkupz[bold magenta]cwd[/]: %sz	[inherit]Úwarnz$Command "%s" had error code %s in %sÚignorezInvalid value: on_returncode=)&r   ÚinfoÚloggingÚINFOÚverboser   ÚgetEffectiveLevelÚosÚenvironÚcopyÚupdateÚpopÚ
subprocessÚPopenr(   ÚPIPEÚSTDOUTÚ	ExceptionÚcriticalr-   r,   ÚcloseÚreadlineÚrstripr   ÚspinÚwaitr$   ÚcommunicateÚ
splitlinesÚ
returncodeÚfinishr   r5   r	   r%   ÚwarningÚ
ValueError)ÚcmdÚshow_stdoutr/   Úon_returncodeÚextra_ok_returncodesÚextra_environÚunset_environÚspinnerÚlog_failed_cmdÚstdout_onlyÚcommand_descÚlog_subprocessÚ
used_levelÚshowing_subprocessÚuse_spinnerr0   ÚnameÚprocÚexcÚ
all_outputÚlineÚoutputÚoutÚerrÚout_lineÚerr_lineÚproc_had_errorr5   s                               r   Úcall_subprocessrt   ;   s¡  € ð6 Ñ#Ø!ÐØÑØˆö  ä.?×.DÑ.DˆÜ—\‘\‰
ô +×2Ñ2ˆÜˆ
ô +×<Ò<Ó>À*ÑLÐð )Ô(×@¨W¸DÐ-@€KáÐ'¨Ô6Ü
�*‰*�/‰/Ó
€CÞØ�
‰
�=Ô!ÛˆØ�‰��dÖñ ðÜ×Òä Ó$Ü—/‘/Ü—?‘?Þ,7”:×$Ò$¼Z¿_¹_ØØØØ%ñ

ˆð& €JÞØ�{�{Ðˆ{Ø�z�zÐˆzØ�
‰
×ÑÔàØŸ™×,Ñ,Ó.ˆDÞØØ—;‘;“=ˆDØ×Ñ˜d T™kÔ*ñ ˜4Ô æÞ��wØ—‘”ñ ð	$Ø�I‰IŒKà�{�{Ø—‘×!Ñ!Ô#Ø—‘˜Ó$‰ð ×#Ñ#Ó%‰ˆˆSàŸ™Ö(ˆHÙ˜8Ö$ñ )à×Ñ˜#ÔØŸ™Ö(ˆHÙ˜8Ö$ñ )à×Ñ˜#ÔØˆà—_‘_×T¨¯©Ð@TÑ)T€NÞÞˆˆwÞØ�N‰N˜7Õ#à�N‰N˜6Ô"ÞØ˜GÓ#Ü/Ø$0ØŸ/™/Þ/A™ZÀtñˆEö
 Ü!×'Ò'¨¨e¸FÀD¸>ÒJÜ!×)Ò)Ø@ÜÔ.¨sÓ3Ó4Ø# TÐ*òô
 "×)Ò)Ø.Ü˜3×- +Ó.Ø# TÐ*òð ˆKØ˜fÓ$Ü×%Ò%Ø6ØØ—‘Øô	ð €Mð	 ˜hÓ&Øð €Mô Ð<¸]Ñ<MÐNÓOÐOØ€Møôk ó ÞÜ×&Ò&Ø5ØØôð
 	ûðûð< �{�{Ø—‘×!Ñ!Õ#ð ús%   ÃA%O1 Ç.P# Ï1
P Ï; PÐP Ð#.Qc                ó.   ^ •   S       SU 4S jjjnU$ )zÓProvide a subprocess_runner that shows a spinner message.

Intended for use with for BuildBackendHookCaller. Thus, the runner has
an API that matches what's expected by BuildBackendHookCaller.subprocess_runner.
c           	     ój   >• [        T5       n[        U TUUUS9  S S S 5        g ! , (       d  f       g = f)N)rd   r/   r_   ra   )r   rt   )r[   r/   r_   ra   Úmessages       €r   ÚrunnerÚ+runner_with_spinner_message.<locals>.runnerë   s2   ø€ ô
 ˜'Ô" gÜØØ$ØØ+Øò÷ #×"Ö"ús   �$¤
2)NN)r[   ú	list[str]r/   ú
str | Noner_   úMapping[str, Any] | NoneÚreturnÚNone© )rw   rx   s   ` r   Úrunner_with_spinner_messager€   ä   s@   ø€ ð Ø26ðØðàðð 0ðð 
÷	ð ð €Mr   )r   zstr | HiddenText | CommandArgsr}   ÚCommandArgs)r   úlist[str] | CommandArgsr}   r    )r   r‚   r}   rz   )	FNr7   NNNNTF)r[   r‚   r\   Úboolr/   r{   r]   z"Literal['raise', 'warn', 'ignore']r^   zIterable[int] | Noner_   r|   r`   zIterable[str] | Nonera   zSpinnerInterface | Nonerb   úbool | Nonerc   r„   rd   r    r}   r    )rw   r    r}   zCallable[..., None])!Ú
__future__r   rA   rE   r   rJ   Úcollections.abcr   r   r   Útypingr   r   Úpip._vendor.rich.markupr	   Úpip._internal.cli.spinnersr
   r   Úpip._internal.exceptionsr   Úpip._internal.utils.loggingr   r   Úpip._internal.utils.miscr   r   r    r�   r   r%   r(   rt   r€   r   r   r   Ú<module>r�      sô   ðÝ "ã Û 	Û Û ß 7Ñ 7ß å *ç EÝ @ß BÝ /à�3˜Ñ#Ñ$€ôô"ôPð ØØ8?Ø15Ø.2Ø*.Ø'+Ø"&Ø$ðfØ	 ðfàðfð 
ðfð 6ð	fð
 /ðfð ,ðfð (ðfð %ðfð  ðfð ðfð ðfð 	õfõRr   