
    n&ph                    0   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	J
r
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  \(       a  SS
KJr  \" S\
S9rS rSS jr\SS j5       r\SS j5       rSS jr    S           SS jjrSSS jjrg)zdistutils.spawn

Provides the 'spawn()' function, a front-end to various platform-
specific functions for launching another program in a sub-process.
    )annotationsN)MappingMutableSequence)TYPE_CHECKINGTypeVaroverload   )logDEBUG)DistutilsExecError)_ENV	_MappingT)boundc                &    [         (       a  U $ U S   $ )z=
Render a subprocess command differently depending on DEBUG.
r   r   )cmds    N/var/www/html/venv/lib/python3.13/site-packages/setuptools/_distutils/spawn.py_debugr      s     %3#SV#    c                    [         R                  " 5       S:w  a  U $ SSKJnJn  U" 5       nU(       a  X0O0 n0 [        U 5      EUE$ )NDarwinr	   )MACOSX_VERSION_VARget_macosx_target_ver)platformsystemutilr   r   _resolve)envr   r   
target_verupdates        r   _inject_macos_verr!   $   sB    H$
?&(J1; -F&hsm&v&&r   c                    g N r   s    r   r   r   /   s    -0r   c                    g r#   r$   r%   s    r   r   r   1   s    +.r   c                ,    U c  [         R                  $ U $ r#   )osenvironr%   s    r   r   r   3   s    2::-#-r   c                   [         R                  " [        R                  " U 5      5        U(       a  gU(       a   [        R
                  " U S   5      nUb  XPS'    [        R                  " U [        U5      S9  g! [         a.  n[        S[        U 5      < SUR                  S    35      UeSnAf[        R                   a+  n[        S[        U 5      < SUR                   35      UeSnAff = f)ac  Run another program, specified as a command list 'cmd', in a new process.

'cmd' is just the argument list for the new process, ie.
cmd[0] is the program to run and cmd[1:] are the rest of its arguments.
There is no way to run a program with a name different from that of its
executable.

If 'search_path' is true (the default), the system's executable
search path will be used to find the program; otherwise, cmd[0]
must be the exact path to the executable.  If 'dry_run' is true,
the command will not actually be run.

Raise DistutilsExecError if running the program fails in any way; just
return on success.
Nr   r%   zcommand z	 failed: z failed with exit code )r
   info
subprocesslist2cmdlineshutilwhich
check_callr!   OSErrorr   r   argsCalledProcessError
returncode)r   search_pathverbosedry_runr   
executableexcerrs           r   spawnr<   7   s    , HHZ$$S)*\\#a&)
!F	c'8'=>  vc{oYsxx|n=
	 ((  vc{o%<S^^<LM
	s$   A: :
C/)B--C/&C**C/c                   [         R                  " S[        SS9  [        R                  R                  U 5      u  p#[        R                  S:X  a  US:w  a  U S-   n [        R                  R                  U 5      (       a  U $ Uc:  [        R                  R                  SS5      nUc   [        R                  " S5      nU(       d  gUR                  [        R                   5      nU HJ  n[        R                  R#                  XP5      n[        R                  R                  U5      (       d  MH  Us  $    g! [        [        4 a    [        R                  n Nf = f)	zTries to find 'executable' in the directories listed in 'path'.

A string listing directories separated by 'os.pathsep'; defaults to
os.environ['PATH'].  Returns the complete filename or None if not found.
z+Use shutil.which instead of find_executable   )
stacklevelwin32z.exeNPATHCS_PATH)warningswarnDeprecationWarningr(   pathsplitextsysr   isfiler)   getconfstrAttributeError
ValueErrordefpathsplitpathsepjoin)r9   rF   _extpathspfs          r   find_executablerW   b   s	    MM57IVW WWj)FAcVm&(
	ww~~j!!|zz~~fd+<"zz), JJrzz"EGGLL'77>>!H	 
  #J/ "zz"s   (D6 6 EE)r   _MappingT | Nonereturnz'_MappingT | dict[str, str | int] | None)r   NonerY   zos._Environ[str])r   r   rY   r   )r   rX   rY   z_MappingT | os._Environ[str])TFFN)r   z/MutableSequence[bytes | str | os.PathLike[str]]r6   boolr7   r[   r8   r[   r   z_ENV | NonerY   rZ   r#   )r9   strrF   
str | NonerY   r]   )__doc__
__future__r   r(   r   r/   r-   rH   rC   collections.abcr   r   typingr   r   r   _logr
   debugr   errorsr   r   r   r   r!   r   r<   rW   r$   r   r   <module>re      s    # 	    
  4 3 3   & Kw/	$' 
 0 
 0	 . 
 .. (	8(( ( 	(
 
( 
(V$r   