Edit File: spawn.cpython-36.opt-1.pyc
3 � \������������������@���s����d�Z�ddlZddlZddlmZmZ�ddlmZ�ddlm Z �ddd�Z d d ��Zddd�Zej d krvddlmZ�dadaddd�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����c�������������C���sN���t�|��}�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����'/usr/lib64/python3.6/distutils/spawn.py�spawn���s���� r���c�������������C���s.���x(t�|��D�]\}}d|kr d|�|�|<�q W�|�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�argr���r���r����_nt_quote_args+���s����r���c�������������C���s����|�d�}t�|��}�|r t|�p|}tjdj|g|�dd�������|s�ytjtj||��}W�n@�tk r��}�z$t sp|}�t d|�|jd�f���W�Y�d�d�}~X�nX�|dkr�t s�|}�t d|�|f���d�S�)Nr���r���r���zcommand %r failed: %sz%command %r failed with exit status %d���)r����find_executabler����info�joinr����spawnv�P_WAIT�OSErrorr���r���r���)r���r���r���r���� executableZrc�excr���r���r���r���;���s$����&r����darwin)� sysconfigc�������������C���sx��t�jdj|����|rd�S�|�d�}|r*tjp.tj}d�}tjdkr�td�krlt j d�pRdatrldd��tjd�D��atr�tj jdt�}td d��|jd�D��kr�d |tf�}t|��ttj |d�}|r�tjp�tj}tj��} | dk�rvy$|d�kr�|||���n|||�|��W�nN�tk �rL�} �z0t�s|}�tjjd|�| jf���tjd ��W�Y�d�d�} ~ X�nX�t�sX|}�tjjd|����tjd ����n���x�ytj| d�\} }W�nD�tk �r��}�z&t�s�|}�td|�|jd�f���W�Y�d�d�}~X�nX�tj|��rt�s�|}�td|�tj|�f���nltj|��rBtj |�} | dk�r&d�S�t�s0|}�td|�| f���n,tj!|��rT�qznt�s^|}�td|�|f����qzW�d�S�)Nr���r���r$����MACOSX_DEPLOYMENT_TARGET��c�������������S���s���g�|�]}t�|��qS�r���)�int)�.0�xr���r���r���� <listcomp>e���s����z _spawn_posix.<locals>.<listcomp>�.c�������������S���s���g�|�]}t�|��qS�r���)r(���)r)���r*���r���r���r���r+���k���s����zF$MACOSX_DEPLOYMENT_TARGET mismatch: now "%s" but "%s" during configure)r&���zunable to execute %r: %s r���z(unable to execute %r for unknown reasonszcommand %r failed: %sz"command %r terminated by signal %dz%command %r failed with exit status %dz1unknown error executing %r: termination status %dr���)"r���r���r���r����execvp�execv�sys�platform�_cfg_targetr%����get_config_var�split�_cfg_target_split�environ�getr����dict�execvpe�execve�forkr!���r����stderr�write�strerror�_exit�waitpidr���r����WIFSIGNALED�WTERMSIG� WIFEXITED�WEXITSTATUS� WIFSTOPPED)r���r���r���r���r"���Zexec_fn�envZ cur_targetZmy_msg�pid�eZstatusr#���Zexit_statusr���r���r���r ���X���s����� & r ���c�������������C���s����|dkrt�jjdt�j�}|jt�j�}t�jj|��\}}tj dkrN|dkrN|�d�}�t�jj |��s�x*|D�]"}t�jj||��}t�jj |�r`|S�q`W�dS�|�S�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. N�PATHZwin32z.exe)r���r5���r6����defpathr3����pathsep�path�splitextr/���r0����isfiler���)r"���rK����paths�baseZext�p�fr���r���r���r�������s���� r���)r���r���r���)r���r���r���)r���r���r���)N)�__doc__r/���r���Zdistutils.errorsr���r���Zdistutils.debugr���Z distutilsr���r���r���r���r0���r%���r1���r4���r ���r���r���r���r���r����<module>���s��� Q