;ò hkDc@s¶dkZdkZdkZdkZdkZeidjo1dkZdkZdkZdk Z dk Z ndd„Z e d„Z deifd„ƒYZdfd„ƒYZdS( Nswin32icCsötidjo ti||ƒ}ti|dƒdjoÇt }t i o{t tiƒf\}}tidd|fƒ\} }|o|}|} qþtiƒ} tit d| fƒ\}}q¸tiddƒ\} }|o |}q¸tidƒ}n·t i oˆtiƒtiƒtiƒf\}}} tidd|fƒ\}} tit d|fƒ\}}tit d| fƒ\}}n%tiddƒ\}} t }t }ti||||ƒ\} }} } t i ot i|||| ƒnt ti!| |ƒ| ƒSnti"i#ƒti$i#ƒt%i&ƒ\}}t%i)ƒ}|omti|dƒdjo*t%i*|ƒt t%i+||ƒ|ƒSnt%i*|ƒt t%i+||ƒ|ƒSnt%i,dt%i-ƒ}ti|dƒdjoOt%i/|dƒt%i/|dƒ|ot%i/|dƒqvt%i/|dƒn1t%i/|dƒt%i/|dƒt%i/|dƒt%i*|ƒt%i*|ƒt%i*|ƒy!t%i0||ft1|ƒƒWn$dG|Gti2|ƒGdGH‚nXti3d ƒdS( Nswin32sriis /dev/nullis

exec failed:

s
i(4ssyssplatforms win32popens CommandLinescmdsargsscommandsstringsfindsmodesNoneshStdInsdebugsSHOW_CHILD_PROCESSESsStringIOsdbgInsdbgOuts MakeSpyPipeshandleshStdOuts capture_errshStdErrsdbgErrsxs CreatePipesNullFiles CreateProcesssphandlespidsthandlestidsProcesss_pipesFile2FileObjectsstdoutsflushsstderrsosspipesrswsforksclosesfdopensopensO_RDWRsnullsdup2sexecvpstuplesjoinsexit(scmdsargssmodes capture_errshStdInspidsdbgOutsnullshStdOutsphandlestidsthandleshandlesdbgErrsdbgInsrscommandswsxshStdErr((s lib/popen.pyspopen#sr   "  *"$         !cCs|tjo ti}ntidjoêtio‘tiƒ}t i dd|fƒ\}} d}x|D]R}|d}tiƒtiƒf\}}|t|ƒjo@t i dd|fƒ\} }t i td|fƒ\}}ndtitddtƒ}t i td|tiiƒf|ƒ\} }t i td|fƒ\}}t i|d|dƒ}t i||||ƒ\} }} } tioti$||||ƒn|}| }qkWn0t i%ddƒ\}} t}d}x|D]}|d}|t|ƒjot i%ddƒ\} }n~t} tii'o(t i(t i)tiƒdƒ}t}nCtitddtƒ}t i tdtiiƒf|ƒ\}}t i|d|dƒ}t i|||tƒ\} }} } | }qðWt*t i+| dƒ| |ƒSntii,ƒti-i,ƒt.i/ƒ\}}t.i2dt.i3ƒ}g}x |d D]ý}t.i/ƒ\}}t.i8ƒ}| o¤t.i9|dƒt.i9|dƒt.i9|dƒt.i:|ƒt.i:|ƒt.i:|ƒt.i:|ƒt.i:|ƒyt.i;|d|ƒWnnXti<dƒn|i=|ƒt.i:|ƒt.i:|ƒ|}qfWt.i:|ƒt>|d ƒ ot.i/ƒ\}}nt.i8ƒ}| oÚt.i9|dƒt>|d ƒo;|i?ƒdjo$t.i9|i?ƒdƒ|i:ƒq4n+t.i9|dƒt.i:|ƒt.i:|ƒt.i:|ƒt.i:|ƒy t.i;|dd|dƒWnnXti<dƒn|i=|ƒt.i:|ƒt>|d ƒ o*t.i:|ƒt@||ƒ}|iBƒnt}t*t.iC|d ƒ|d |ƒSd S( s’Executes a sequence of commands. The output of each command is directed to the input of the next command. A _pipe object is returned for writing to the first command's input. The output of the last command is directed to the "out" file object or the standard output if "out" is None. If "out" is not an OS file descriptor, a separate thread will be spawned to send data to its write() method.swin32iiswbs /dev/nulliÿÿÿÿiisfilenoswsthreadN(DsoutsNonessyssstdoutsplatformsdebugsSHOW_CHILD_PROCESSESsStringIOsdbgIns win32popens MakeSpyPipeshStdInshandlesiscmdsscmdsdbgOutsdbgErrslens nextStdInshStdOutsxshStdErrs win32events CreateEventsehandlessapisserversfiles CommandLinescommands CreateProcesssphandlespidsthandlestidsProcesss CreatePipesspoolsinheritableOutsMakeInheritedHandlesFileObject2Files_pipesFile2FileObjectsflushsstderrsosspipesprev_rsparent_wsopensO_RDWRsnulls child_pidssrswsforksdup2sclosesexecvpsexitsappendshasattrsfilenos_copysthreadsstartsfdopen(scmdssoutshStdInsehandlesprev_rsdbgOutsnullshStdOutsspools nextStdInsphandlestidsthandleshandlesdbgErrspids child_pidssdbgInsparent_wsthreadsiscmdsrscommandswsxshStdErr((s lib/popen.pys pipe_cmds†s     "-$    *$                         s_copycBstZd„Zd„ZRS(NcCs&||_||_tii|ƒdS(N(ssrcfdsselfsdestfiles threadingsThreads__init__(sselfssrcfdsdestfile((s lib/popen.pys__init__3s  cCs]zEx>no6ti|idƒ}| oPn|ii|ƒq WWdti|iƒXdS(Nii(sossreadsselfssrcfdsssdestfileswritesclose(sselfss((s lib/popen.pysrun8s(s__name__s __module__s__init__srun(((s lib/popen.pys_copy2s s_pipecBsAtZdZeed„Zd„Zd„Zd„Zd„ZRS(sEWrapper for a file which can wait() on a child process at close time.cCsY||_||_tidjo*|o||f|_qU|f|_n ||_dS(Nswin32(sfilesselfs child_pidssyssplatforms done_eventswait_forsthread(sselfsfiles child_pids done_eventsthread((s lib/popen.pys__init__Es  cCs×tidjoZti|iddƒ}|tijo*|ii ƒt |_t i |i ƒSnt Sn|io |iiƒot Snti|i tiƒ\}}|o|ii ƒt |_|Snt SdS(Nswin32ii(ssyssplatforms win32eventsWaitForMultipleObjectssselfswait_forsrs WAIT_OBJECT_0sfilesclosesNones win32processsGetExitCodeProcesss child_pidsthreadsisAlivesosswaitpidsWNOHANGspidsstatus(sselfsstatusspidsr((s lib/popen.pyseofPs    cCsé|io×|iiƒt|_tidjo-ti|idti ƒt i |i ƒSqá|i o|i iƒnt|i ƒtgƒjo2x'|i D]}ti|dƒd}qžW|Sqáti|i dƒdSntSdS(Nswin32ii(sselfsfilesclosesNonessyssplatforms win32eventsWaitForMultipleObjectsswait_forsINFINITEs win32processsGetExitCodeProcesss child_pidsthreadsjoinstypespidsosswaitpidsexit(sselfspidsexit((s lib/popen.pysclosees     cCst|i|ƒSdS(N(sgetattrsselfsfilesname(sselfsname((s lib/popen.pys __getattr__wscCs|iƒdS(N(sselfsclose(sself((s lib/popen.pys__del__zs( s__name__s __module__s__doc__sNones__init__seofscloses __getattr__s__del__(((s lib/popen.pys_pipeBs    (sosssysssapis threadingsstringsplatforms win32popens win32events win32processsdebugsStringIOspopensNones pipe_cmdssThreads_copys_pipe(ssapis win32popens win32processs_copysStringIOspopens_pipes pipe_cmdsssyss threadingsdebugsoss win32eventsstring((s lib/popen.pys?s           c ¬