
    si                    t   S r SSKJr  SSKrSSKrSSKJr  SSKJr  SSK	J
r
  SSKJrJrJr  SSKJr  S	S
K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  S	SK J!r!  \(       a  SSK"J#r#  SSK$J%r%  \" \&5      r'\" SS5      r(S r)SSS jjr*     S           SS jjr+SS jr,     S S jr-g)!z!Helpler functions for subprocess.    )annotationsN)
namedtuple)	getLogger)abspath)PIPECalledProcessErrorPopen)TYPE_CHECKING   )ACTIVE_SUBPROCESSES)shlex_split_unicodedals)context)encode_environment
isiterable)TRACE)rm_rf)wrap_subprocess_call)Sequence)PathResponse)stdoutstderrrcc                $    [        S5      XX#U4-  $ )Nzp
    $ %s
    ==> cwd: %s <==
    ==> exit code: %d <==
    ==> stdout <==
    %s
    ==> stderr <==
    %s
    r   )command_strcwdr   r   r   s        9lib/python3.13/site-packages/conda/gateways/subprocess.py_format_outputr        s%    	
 
2v.
/ 
/    c           	        [        [        R                  U[        R                  [        R                  U 5      u  pE[        UU=(       d    US[        [        US9nUR                  5       u  pxUb8  S[        R                  ;  a  [        U5        O[        R                  SU 35        [        US5      (       a  UR                  SSS9n[        US5      (       a  UR                  SSS9nXxUR                  4$ )	NF)r   universal_newlinesr   r   envCONDA_TEST_SAVE_TEMPSz2CONDA_TEST_SAVE_TEMPS :: retaining pip run_script decodezutf-8replace)errors)r   r   root_prefixdevdebugr	   r   communicateosenvironr   logwarninghasattrr&   
returncode)	argsprefixr$   r   script_callercommand_argsprocessr   r   s	            r   any_subprocessr8   .   s    "6#M M6 G ((*NF ""**4- KKD]OT vx  wy9vx  wy97----r!   c                   [        U=(       d    [        R                  5      nUc  [        R                  O
[        U5      n[        U 5      (       d  [        U 5      n  [        R                  " U 5      n[        R                  SU5        SnU(       a  [        nOU(       a  [        S5      eSn[!        U UUUUUSSS9n	["        R$                  " U	5        U	R'                  US9u  pU	R(                  n["        R*                  " U	5        U(       a  US	:w  d  [        R-                  [.        5      (       a  [1        XvXU5      nU(       a%  US	:w  a  [        R3                  W5        [5        XUS
9e[        R-                  [.        5      (       a  [        R                  [.        W5        [7        X[9        U5      5      $ ! [         a-    SR                  [        [        R                  U 5      5      n GNzf = f)zkThis utility function should be preferred for all conda subprocessing.
It handles multiple tricky details.
N zexecuting>> %sz/When passing stdin, output needs to be capturedTr'   )r   stdinr   r   r$   textr(   )inputr   )output)r   r-   r.   sysr4   r   r   r   fspath	TypeErrorjoinmapr/   r+   r   
ValueErrorr	   r   addr,   r2   removeisEnabledForr   r    infor   r   int)commandr$   pathr;   raise_on_errorcapture_outputr   r   piper7   r   r   r   formatted_outputs                 r   subprocess_callrP   M   s    S.BJJ
/C#**'$-Cg%g.8ii( II,D	JKK 	G G$ ((u(5NF			Bw'27s'7'7'>'>)+BO"'!" 5EFF
'(FCG,,O  8hhs299g678s   F7 73G.-G.c                    / nU(       a  UR                  S5        U(       a  UR                  S5        U H  nX@;   d  M
  X	 M     g )N)
PYTHONPATH
PYTHONHOME)
CONDA_ROOTCONDA_PROMPT_MODIFIER	CONDA_EXECONDA_DEFAULT_ENV)extend)r$   clean_pythonclean_condadelskeys        r   _subprocess_clean_envr]      s?    D01U	
 : r!   c                l    [         R                  R                  5       n[        XdU5        [	        XXUS9$ )N)r$   rK   r;   rL   )r-   r.   copyr]   rP   )rJ   rK   r;   rL   rY   rZ   r$   s          r   subprocess_call_with_clean_envr`      s2     **//
C#[9t r!   )NN)r3   zSequence[str])NNNTT)rJ   z=str | os.PathLike | Path | Sequence[str | os.PathLike | Path]r$   zdict[str, str] | NonerK   zstr | os.PathLike | Path | Noner;   z
str | NonerL   boolrM   ra   )TT)NNTTT).__doc__
__future__r   r-   r?   collectionsr   loggingr   os.pathr   
subprocessr   r   r	   typingr
    r   auxlib.compatr   
auxlib.ishr   base.contextr   common.compatr   r   common.constantsr   gateways.disk.deleter   utilsr   collections.abcr   pathlibr   __name__r/   r   r    r8   rP   r]   r`    r!   r   <module>ru      s    ( " 	 
 "   6 6   " /  " : $ ( ((j"<=/.B "&,08-J8-	8- *8- 	8-
 8- 8-v
 

r!   