3 \@s4ddlZejdkZddlZddlZddlZddlZddlZddlZddl Z ddlm Z Gddde Z Gddde ZGdd d e ZerddlZddlZddlZGd d d ZnhddlZddlZddlZy ddlZWnek rddlZYnXeed d ZeedrejZnejZddddddddddddd dgZerddlm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'ej(dddddd d!d"d g Gd#d$d$e)Z*gZ+d%d&Z,d;Z-dNZwin32) monotonicc@s eZdZdS)SubprocessErrorN)__name__ __module__ __qualname__rr"/usr/lib64/python3.6/subprocess.pyr9src@s8eZdZd ddZddZeddZejddZdS) CalledProcessErrorNcCs||_||_||_||_dS)N) returncodecmdoutputstderr)selfr r r r rrr__init__CszCalledProcessError.__init__c Csb|jrN|jdkrNyd|jtj|j fStk rJd|j|j fSXnd|j|jfSdS)NrzCommand '%s' died with %r.z)Command '%s' died with unknown signal %d.z.Command '%s' returned non-zero exit status %d.)r r signalZSignals ValueError)rrrr__str__IszCalledProcessError.__str__cCs|jS)N)r )rrrrstdoutUszCalledProcessError.stdoutcCs ||_dS)N)r )rvaluerrrrZs)NN)rrrrrpropertyrsetterrrrrr <s  r c@s8eZdZd ddZddZeddZejddZdS) TimeoutExpiredNcCs||_||_||_||_dS)N)r timeoutr r )rr rr r rrrrhszTimeoutExpired.__init__cCsd|j|jfS)Nz'Command '%s' timed out after %s seconds)r r)rrrrrnszTimeoutExpired.__str__cCs|jS)N)r )rrrrrrszTimeoutExpired.stdoutcCs ||_dS)N)r )rrrrrrvs)NN)rrrrrrrrrrrrras  rc@s eZdZdZdZdZdZdZdS) STARTUPINFOrN)rrrdwFlags hStdInput hStdOutput hStdError wShowWindowrrrrrs rZPIPE_BUFi PollSelectorPopenPIPESTDOUTcall check_callgetstatusoutput getoutput check_outputrunDEVNULLCompletedProcess)CREATE_NEW_CONSOLECREATE_NEW_PROCESS_GROUPSTD_INPUT_HANDLESTD_OUTPUT_HANDLESTD_ERROR_HANDLESW_HIDESTARTF_USESTDHANDLESSTARTF_USESHOWWINDOWr+r,r-r.r/r0r1r2c@s6eZdZdZejfddZddZddZeZ eZ dS) HandleFcCs|jsd|_||dS)NT)closed)r CloseHandlerrrClosesz Handle.ClosecCs |jsd|_t|StddS)NTzalready closed)r4intr)rrrrDetachsz Handle.DetachcCsd|jjt|fS)Nz%s(%d)) __class__rr7)rrrr__repr__szHandle.__repr__N) rrrr4_winapir5r6r8r:__del__rrrrrr3s r3c CsTxNtddD]>}|jtjd}|dk rytj|Wqtk rJYqXqWdS)N) _deadstate)_active_internal_pollsysmaxsizeremover)Zinstresrrr_cleanupsrDcCs*g}tjj}|dkr&|jdd||S)Nr-O)r@flagsoptimizeappend)argsrrrr"_optim_args_from_interpreter_flagss rNcCsddddddd}t}x:|jD].\}}ttj|}|dkr"|jd ||q"Wtjjrh|jd n$tjjrz|jd tjjr|jd xtj D]}|jd |qWttdi}xDdD]<}||kr||}|dkr|}n d||f}|j d|fqW|S)NdBSvbq)debugdont_write_bytecodeno_siteverbose bytes_warningquietrrHz-Iz-Ez-sz-W _xoptions faulthandler tracemallocshowalloccount showrefcountutf8Tz%s=%sz-X)r\r]r^r_r`) rNitemsgetattrr@rJrLisolatedignore_environment no_user_site warnoptionsextend)Z flag_opt_maprMflagoptrRZxoptionsrargrrr_args_from_interpreter_flagss:       rk)rcOsFt||2}y |j|dS|j|jYnXWdQRXdS)N)r)r waitkill)r popenargskwargsprrrr#s  cOs6t||}|r2|jd}|dkr(|d}t||dS)NrMr)r#getr )rnroretcoder rrrr$(s   cOsTd|krtdd|kr<|ddkr<|jddr4dnd|d<t|t|dd |jS) Nrz3stdout argument not allowed, it will be overridden.inputuniversal_newlinesFT)rrcheck)rrqr(r!r)rrnrorrrr';s c@s&eZdZdddZddZddZdS) r*NcCs||_||_||_||_dS)N)rMr rr )rrMr rr rrrrrszCompletedProcess.__init__cCshdj|jdj|jg}|jdk r4|jdj|j|jdk rP|jdj|jdjt|jdj|S)Nz args={!r}zreturncode={!r}z stdout={!r}z stderr={!r}z{}({})z, ) formatrMr rrLr typerjoin)rrMrrrr:xs   zCompletedProcess.__repr__cCs |jrt|j|j|j|jdS)N)r r rMrr )rrrrcheck_returncodesz!CompletedProcess.check_returncode)NN)rrrrr:r{rrrrr*gs  F)rsrrwc Os|dk r d|krtdt|d<t||}y|j||d\}}WnVtk r||j|j\}}t|j|||dYn|j|jYnX|j}|r|rt ||j||dWdQRXt |j|||S)Nstdinz/stdin and input arguments may not both be used.)r)r r ) rr!r communicaterrmrMrlpollr r*) rsrrwrnroZprocessrr rrrrrr(s*    cCsg}d}x|D]}g}|r$|jdd|kp8d|kp8| }|rH|jdxj|D]b}|dkrf|j|qN|dkr|jdt|dg}|jdqN|r|j|g}|j|qNW|r|j||r|j||jdqWdj|S) NF  "\rFz\"ru)rLlenrgrz)seqresultZ needquoterjZbs_bufcrrr list2cmdlines4         rcCslyt|ddtd}d}Wn.tk rF}z|j}|j}WYdd}~XnX|dddkrd|dd}||fS)NT)shellrtr rrE r)r'r"r r r )r dataZexitcodeZexrrrr%s cCs t|dS)NrE)r%)r rrrr&"s c@seZdZdZd>dddddeddddddddffdddddZd d Zd d Zd dZe j e j fddZ ddZddZd?ddZddZddZddZerddZdd Zd!d"Zdejejejfd#d$Zd@d%d&Zd'd(Zd)d*Zd+d,Z d-d.Z!e!Z"nd/dZd0d"Ze#j$e#j%e#j&e#j'e#j(e#j)fd1d2Z*de#j+e#j,e-j.fd3d$Zd4d5Z/dAd6d&Zd7d*Zd8d9Z0d:d,Z d;d.Z!drL)rZ_maxsizeZ_warnrrrr< s    z Popen.__del__cCs"t|dstjtjtj|_|jS)Nr)rrrdevnullO_RDWRr)rrrr _get_devnulls zPopen._get_devnullcCs|rZy|jj|WnDtk r(Yn2tk rX}z|jtjkrFnWYdd}~XnXy|jjWnDtk r|Yn2tk r}z|jtjkrnWYdd}~XnXdS)N)r|writeBrokenPipeErrorrerrnoZEINVALr)rrsexcrrr _stdin_writes"  zPopen._stdin_writec Cs|jr|rtd|dkr|j r|j|j|jgjddkrd}d}|jrV|j|n6|jrr|jj}|jjn|jr|jj}|jj|j nJ|dk rt |}nd}z|j |||\}}Wdd|_X|j |j |d}||fS)Nz.Cannot send input after starting communicationrFT)r) rrr|rr countrreadrrl_time _communicate_remaining_time)rrsrrr endtimestsrrrr}7s.        zPopen.communicatecCs|jS)N)r?)rrrrr~hsz Popen.pollcCs|dkr dS|tSdS)N)r)rrrrrrnszPopen._remaining_timecCs&|dkr dSt|kr"t|j|dS)N)rrrM)rr orig_timeoutrrr_check_timeoutvs zPopen._check_timeoutc Cs|dkr|dkr|dkrd Sd \}}d\}}d\}} |dkrttjtj}|dkrrtjdd\}} t|}tj| nj|tkrtjdd\}}t|t|}}n>|tkrtj |j }n&t |t rtj |}ntj |j }|j|}|dkr,tjtj}|dkrtjdd\} }t|}tj| nn|tkrZtjdd\}}t|t|}}n@|tkrttj |j }n&t |t rtj |}ntj |j }|j|}|dkrtjtj} | dkrftjdd\} } t| } tj| n~|tkrtjdd\}} t|t| }} nP|tkr&|} n@|tkr@tj |j } n&t |t rXtj |} ntj |j } |j| } |||||| fS)NrErrrrrrr)rrrrrrrr)rrrr)rrrr)rr)r;Z GetStdHandler-Z CreatePiper3r5r!r)rZ get_osfhandlerrr7fileno_make_inheritabler.r/r") rr|rr rrrrrr_rrrrsn                        zPopen._get_handlescCs&tjtj|tjddtj}t|S)NrrE)r;ZDuplicateHandleZGetCurrentProcessZDUPLICATE_SAME_ACCESSr3)rZhandlehrrrrs  zPopen._make_inheritablecCs<t|tst|}|dkr t}d| ||fkrP|jtjO_| |_||_||_ | r|jtj O_tj |_ t jjdd}dj||}z>tj||ddt| | ||dk rt j|nd| \}}}}Wd| dkr| j|d kr|j|d kr|jt|drt j|jd|_Xd|_t||_||_tj|dS) NrEZCOMSPECzcmd.exez {} /c "{}"rTrrrr)rstrrrrr;r1rrrr2r0rrenvironrqrxZ CreateProcessr7fspathr6rrrrrr3_handlerr5)rrMrrrrrrrrrrrrrrrZunused_restore_signalsZunused_start_new_sessionZcomspecZhpZhtrtidrrrrsF      zPopen._execute_childcCs,|jdkr&||jd|kr&||j|_|jS)Nr)r r)rr=Z_WaitForSingleObjectZ_WAIT_OBJECT_0Z_GetExitCodeProcessrrrr?s  zPopen._internal_pollcCs|dk r"tjdtdd|j|}|dkr2tj}n t|d}|jdkrztj|j |}|tj krlt |j |tj |j |_|jS)Nz0'endtime' argument is deprecated; use 'timeout'.rF) stackleveli)rrDeprecationWarningrr;ZINFINITEr7r WaitForSingleObjectrZ WAIT_TIMEOUTrrMGetExitCodeProcess)rrrZtimeout_millisrrrrrl$s      z Popen.waitcCs|j|j|jdS)N)rLrr)rZfhbufferrrr _readerthread:szPopen._readerthreadcCs`|jrDt|d rDg|_tj|j|j|jfd|_d|j_|jj|j rt|d rg|_ tj|j|j |j fd|_ d|j _|j j|j r|j ||jdk r|jj|j||jjrt|j||j dk r|j j|j||j jrt|j|d}d}|jr|j}|jj|j r4|j }|j j|dk rF|d}|dk rX|d}||fS)N _stdout_buff)targetrMT _stderr_buffr)rrrrZThreadrZ stdout_threadZdaemonstartr rZ stderr_threadr|rrzrZis_aliverrMr)rrsrrrr rrrr?sF             zPopen._communicatecCsl|jdk rdS|tjkr"|jnF|tjkr>tj|jtjn*|tjkrZtj|jtjnt dj |dS)NzUnsupported signal: {}) r rSIGTERM terminateZ CTRL_C_EVENTrrmrZCTRL_BREAK_EVENTrrx)rsigrrr send_signalss     zPopen.send_signalc CsX|jdk rdSytj|jdWn2tk rRtj|j}|tjkrH||_YnXdS)NrE)r r;ZTerminateProcessrPermissionErrorrZ STILL_ACTIVE)rZrcrrrrs   zPopen.terminatec Cs.d\}}d\}}d \}} |dkr"n@|tkr8tj\}}n*|tkrJ|j}nt|trZ|}n|j}|dkrln@|tkrtj\}}n*|tkr|j}nt|tr|}n|j}|dkrnh|tkrtj\}} nR|tkr|d kr|} n t j j} n.|tkr|j} nt|tr|} n|j} |||||| fS) NrErr)rrrr)rrrr)rrr) r!rpiper)rrr7rr"r@ __stdout__) rr|rr rrrrrrrrrrsJ         c)"st|ttfr|g}nt|}| r:ddg|}r:|d<dkrJ|d}tj\}}g}x |dkr~|j|tj|}q`Wx|D]}tj|qWzz|dk rg}xL|j D]:\}}tj |}d|krt d|j|dtj |qWnd}tj tj j rf}ntfddtj|D}t|}|j|tj|||tttt|||| | | |||||||||_d |_Wdtj|Xt|d d}| dkr| dkr| |krtj| |dkr| dkr||krtj||dkr|dkr||krtj||dk r.tj|d |_t}x2tj|d }||7}| sft|d krsz'Popen._execute_child..TrrEiP:rFsSubprocessError0z#Bad exception data from child: {!r}asciiZnoexecruz: rrrrrr)/rrbyteslistrrrLduprrarrrdirnametuple get_exec_pathsetadd_posixsubprocessZ fork_execsortedmapr7rrrbr bytearrayrrwaitpid_handle_exitstatusr@rAr ChildProcessErrorsplitrrxbuiltinsr issubclassrstrerrorrENOENTrepr))rrMrrrrrrrrrrrrrrrrrZorig_executableZ errpipe_readZ errpipe_writeZlow_fds_to_closeZlow_fdZenv_listkrRZexecutable_listZ fds_to_keepZ devnull_fdZ errpipe_datapartrrZexception_nameZ hex_errnoZerr_msgZchild_exception_typeZ errno_numZchild_exec_never_calledZ err_filenamer)rrrs                                cCsL||r|| |_n2||r*|||_n||r@|| |_ntddS)NzUnknown child exit status!)r r)rrZ _WIFSIGNALEDZ _WTERMSIGZ _WIFEXITEDZ _WEXITSTATUSZ _WIFSTOPPEDZ _WSTOPSIGrrrr Xs zPopen._handle_exitstatuscCs|jdkr|jjdsdSzy8|jdk r.|jS||j|\}}||jkrR|j|WnBtk r}z&|dk rv||_n|j|krd|_WYdd}~XnXWd|jjX|jS)NFr)r racquirerr rrrelease)rr=Z_waitpidZ_WNOHANGZ_ECHILDrrerrrr?js      c Cs>ytj|j|\}}Wntk r4|j}d}YnX||fS)Nr)rr rr )rZ wait_flagsrrrrr _try_waits  zPopen._try_waitc CsV|jdk r|jS|dk r(tjdtdd|dk s8|dk r^|dkrLt|}n|dkr^|j|}|dk rd}x|jjdrz6|jdk rP|jt j \}}||j kr|j |PWd|jj X|j|}|dkrt|j|t|d|d}tj|qlWnVxT|jdkrN|j8|jdk rP|jd\}}||j krB|j |WdQRXqW|jS)Nz0'endtime' argument is deprecated; use 'timeout'.rF)rgMb@?Frg?)r rrrrrrrrrWNOHANGrr rrrMmintimeZsleep)rrrZdelayrrZ remainingrrrrlsJ            c#Cs|jrZ|j rZy|jjWntk r0YnX|sZy|jjWntk rXYnXd}d}|jsi|_|jrg|j|j<|jrg|j|j<|jr|j|j}|jr|j|j}|j||j rt |j }t }|jr|r|j |jt j|jr |j |jt j|jr$|j |jt jxJ|jrp|j|}|dk r\|dkr\t|j||j|} |j||x| D]\} } | j|jkr||j|jt} y|jtj| j| 7_Wn,tk r|j| j| jjYn*X|jt|j krf|j| j| jjnP| j|j|jfkrxtj| jd} | sT|j| j| jj|j| jj| qxWq(WWdQRX|j |j|d|dk rdj!|}|dk rdj!|}|j"s|j#s|j$r|dk r|j%||jj"|jj#}|dk r|j%||jj"|jj#}||fS)Nri)rrv)&r|rflushrrZ_fileobj2outputrr _save_inputr memoryview_PopenSelectorregister selectorsZ EVENT_WRITEZ EVENT_READZget_maprrrMselectrZfileobj _input_offset _PIPE_BUFrrrZ unregisterrrrLrlrzrrrtr)rrsrrrr Z input_viewZselectorrZreadykeyZeventschunkrrrrrs                 (        cCsR|jrN|jdkrNd|_||_|dk rN|js6|js6|jrN|jj|jj|jj|_dS)Nr)r|rr"rrrtencode)rrsrrrr/s zPopen._save_inputcCs|jdkrtj|j|dS)N)r rrmr)rrrrrr<s cCs|jtjdS)N)rrr)rrrrrBscCs|jtjdS)N)rrSIGKILL)rrrrrmGsz Popen.killr)NN)NN)NN)1rrrrrrrrrr@rArrr<rrr}r~rrrrrrr;rZ WAIT_OBJECT_0rr?rlrrrrrmr WIFSIGNALEDWTERMSIG WIFEXITED WEXITSTATUS WIFSTOPPEDWSTOPSIGr r rrZECHILDrrrrrrr 2sb,  1H @ 46 " 4a r)=r@platformrrrrrr rrrr Exceptionrr rrrr;rrr!r  ImportErrorZdummy_threadingrbr#rrrZSelectSelector__all__r+r,r-r.r/r0r1r2rgr7r3r>rDr!r"r)rNrkr#r$r'objectr*r(rr%r&rr rrrr,sp  %      (  .,!2I