Your IP : 18.118.30.153


Current Path : /opt/alt/python38/lib64/python3.8/distutils/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/distutils/__pycache__/spawn.cpython-38.pyc

U

i�f��@s�dZddlZddlZddlmZmZddlmZddlm	Z	ddd�Z
d	d
�Zddd�Zej
d
krjdadaddd�Zddd�ZdS)z�distutils.spawn

Provides the 'spawn()' function, a front-end to various platform-
specific functions for launching another program in a sub-process.
Also provides the 'find_executable()' to search the path for a given
executable name.
�N)�DistutilsPlatformError�DistutilsExecError)�DEBUG)�log�cCsNt|�}tjdkr"t|||d�n(tjdkr<t|||d�ntdtj��dS)a�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.
    �posix)�dry_run�ntz1don't know how to spawn programs on platform '%s'N)�list�os�name�_spawn_posix�	_spawn_ntr)�cmd�search_path�verboser�r�4/opt/alt/python38/lib64/python3.8/distutils/spawn.py�spawns

�rcCs*t|�D]\}}d|krd|||<q|S)z�Quote command-line arguments for DOS/Windows conventions.

    Just wraps every argument which contains blanks in double quotes, and
    returns a new argument list.
    � z"%s")�	enumerate)�args�i�argrrr�_nt_quote_args+src
Cs�|d}t|�}|r t|�p|}t�d�|g|dd���|s�zt�tj||�}Wn@tk
r�}z"t	sp|}t
d||jdf��W5d}~XYnX|dkr�t	s�|}t
d||f��dS)Nrrr�command %r failed: %s����%command %r failed with exit status %d)r�find_executabler�info�joinr�spawnv�P_WAIT�OSErrorrrr)rrrr�
executableZrc�excrrrr;s(�
�r�darwinc
Cs|t�d�|��|rdS|d}|r*tjp.tj}d}tjdkr�tdkrxddl	m
}|�d�p^datrxdd�t�d	�D�a
tr�tj�dt�}t
d
d�|�d	�D�kr�d|tf}	t|	��ttj|d�}|r�tjp�tj}t��}
|
dk�r�z$|dkr�|||�n||||�WnNtk
�rX}z.t�s(|}tj�d
||jf�t�d�W5d}~XYnXt�sd|}tj�d|�t�d�n�zt�|
d�\}
}WnDtk
�r�}
z$t�s�|}td||
jdf��W5d}
~
XYnXt�|��rt�s�|}td|t�|�f��nlt� |��rHt�!|�}|dk�r,dSt�s6|}td||f��n,t�"|��rZ�q�nt�sd|}td||f���q�dS)Nrrr&)�	sysconfig�MACOSX_DEPLOYMENT_TARGET�cSsg|]}t|��qSr��int��.0�xrrr�
<listcomp>esz _spawn_posix.<locals>.<listcomp>�.cSsg|]}t|��qSrr*r,rrrr/kszF$MACOSX_DEPLOYMENT_TARGET mismatch: now "%s" but "%s" during configure)r(zunable to execute %r: %s
rz(unable to execute %r for unknown reasonsrrz"command %r terminated by signal %drz1unknown error executing %r: termination status %d)#rrr r�execvp�execv�sys�platform�_cfg_target�	distutilsr'Zget_config_var�split�_cfg_target_split�environ�getr�dict�execvpe�execve�forkr#r�stderr�write�strerror�_exit�waitpidrr�WIFSIGNALED�WTERMSIG�	WIFEXITED�WEXITSTATUS�
WIFSTOPPED)rrrrr$Zexec_fn�envr'Z
cur_targetZmy_msg�pid�eZstatusr%Zexit_statusrrrr
Ws�
����
����

����r
c	Cs�tj�|�\}}tjdkr*|dkr*|d}tj�|�r:|S|dkr�tj�dd�}|dkr�zt�d�}Wnt	t
fk
r�tj}YnX|s�dS|�tj
�}|D]&}tj�||�}tj�|�r�|Sq�dS)z�Tries 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.
    Zwin32z.exeN�PATH�CS_PATH)r�path�splitextr3r4�isfiler9r:�confstr�AttributeError�
ValueError�defpathr7�pathsepr )r$rN�_Zext�paths�p�frrrr�s(
r)rrr)rrr)rrr)N)�__doc__r3rZdistutils.errorsrrZdistutils.debugrr6rrrrr4r5r8r
rrrrr�<module>s



R

?>