a
XC?hs
@ s. d Z ddlZG dd dZdd Zdd ZdS ) z
Basic subprocess implementation for POSIX which only uses os functions. Only
implement features required by setup.py to build C extension modules when
subprocess is unavailable. setup.py is not used on Windows.
Nc @ s e Zd ZdddZdd ZdS )PopenNc C s || _ || _d | _d S )N)_cmd_env
returncode)selfcmdenv r 4/opt/alt/python39/lib64/python3.9/_bootsubprocess.py__init__ s zPopen.__init__c C s t }|dkrfzF| jd ur6t | jd | j| j nt | jd | j W t d qt d 0 nt |d\}}t || _ | j S )Nr )
osforkr execver execv_exitwaitpidwaitstatus_to_exitcoder )r pid_statusr r r
wait s
z
Popen.wait)N)__name__
__module____qualname__r r r r r r
r s
r c C s g }dD ]2\}}t t|t|d D ]}|t| q&q|d d|}t| ttfrd| }nt| trv| g}ndS |D ]8}t|ts dS |s dS |D ]}||vr dS qq~dS )N))az)AZ)09r z./- FT) rangeordappendchrjoin
isinstancetupleliststr)r Z
safe_charsfirstZlastZchZ
check_strsargr r r
_check_cmd$ s(
r- c K s |rt t|t| s&td| d}t| ts>d| } | d| } zt| }t |}|rztd| d|z6t
|d}| }W d n1 s0 Y W n ty d}Y n0 W zt
| W n ty Y n0 n&zt
| W n ty Y n0 0 |S ) Nzunsupported command: zcheck_output.tmp z >zCommand z returned non-zero exit status rb )NotImplementedErrorreprr-
ValueErrorr' r* r&