. :D_dZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl mZddlmZddlmZddlmZddlmZddlmZdd lmZdd lmZdd lmZdd lmZd dlmZd dlmZd dlmZd dlmZd dl m!Z!e j"#dre j$dkreee%e&fZ'neee%e&ddfZ'GddZ(Gdde(Z)dS)zFakePopen class declarationN)partial)Any)Callable)Dict)IO)List)Optional)Sequence)Tuple)Union) exceptions)BUFFER) OPTIONAL_TEXT)OPTIONAL_TEXT_OR_ITERABLE)Threadwinzos.PathLike[str]zos.PathLike[bytes]c6eZdZUdZdZeeed<dZeeed<dZ ee ed<dZ e ed<dZ e ed < d;d eeeefefdedede d eed eed eeeefdeedeedeeefddfdZedeeeeffdZddeede fd"Z$d#e ddfd$Z%d?d%Z&d?d&Z'deeddfd'Z(e)deeefdeeeffd(Z* d>ded)eedee+j,e+j-e.j/ffd*Z0d+e defd,Z1d-e2eeefde2efd.Z3d-edefd/Z4d-ed0e5ddfd1Z6deeefdeeeffd2Z7d3eddfd4Z8d?d5Z9d?d6Z:d?d7Z;deeddfd8Z|D];} t| tjrd| j j d} t| <||_ d|_ ||_||_d|_||_| |_d|_g|_||_||_||_||_dS)Nrrzargument of type z is not iterable) isinstancestrbytessysplatform startswith version_infoosPathLike __class____name__ TypeErrorargs_FakePopen__kwargs_FakePopen__stdout_FakePopen__stderr_FakePopen__thread_FakePopen__signal_callback_FakePopen__stdin_callable_FakePopen__universal_newlines_signals _returncode _wait_timeout _callback_callback_kwargs) selfrrrrrr r!r"r#r$argmsgs n/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/pytest_subprocess/fake_popen.py__init__zFakePopen.__init__.s"7S%L11 ) ''.. ) 6)) ) )c2;//)Xcm.DXXXC#C..() 6: 39 39 *. 5D>LFJ!#% *4.27?>Mc|jSN)r4r@s rCkwargszFakePopen.kwargsUs }rEc|SrGrHs rC __enter__zFakePopen.__enter__Ys rEr3rIcH|jr|jjr|jjdSdSrG)r7 exception)r@r3rIs rC__exit__zFakePopen.__exit__\s7 = *T]4 *-) ) * * * *rEinputtimeoutcr||||t|jtjst|jtjr tj|jr|j nd|jr|j ndfSrG) _handle_stdin_finalize_threadr'rasyncio StreamReaderrrPluginInternalErrorgetvaluer@rPrQs rC communicatezFakePopen.communicate`s 5!!! g&&& dk7#7 8 8 1J K-= =  10 0'+k ;DK " " "t&*k ;DK " " "t  rEc|ru|jrp||}t|trH||d|j|_||d|j|_dSdSdSdS)Nrr)r9r'dict_extend_stream_from_dictrr)r@rPcallable_outputs rCrSzFakePopen._handle_stdinps  T* "33E::O/400 ";;#Xt{ #;;#Xt{       rEc|jdS|j||j|j |j|_|jjr |jjdSrG)r7joinrr<rNr@rQs rCrTzFakePopen._finalize_thread{sa = F 7### ? "t'7'C".DO = " *-) ) * *rE dictionarykeystreamcb||}|r|||SdS)N)rPio_base)get_prepare_buffer)r@rbrcrddatas rCr]z"FakePopen._extend_stream_from_dicts<~~c""  D''dF'CC CtrEc|jSrG)rrHs rCpollzFakePopen.polls rEc|r<|jr5|xj|zc_||jkrtj|j||||j t j|jSrG)r= subprocessTimeoutExpiredr3rTrrrWras rCrzFakePopen.waitsz  Dt) D   ' )  +++ / 7CCC g&&& ? "0 0rEsigcx|j||jr|||dSdSrG)r;appendr8)r@ros rC send_signalzFakePopen.send_signalsI S!!!  ! .  " "4 - - - - - . .rEcD|tjdSrG)rrsignalSIGTERMrHs rC terminatezFakePopen.terminates (((((rEctjdkr|dS|tjdS)Nwin32)r*r+rvrrrtSIGKILLrHs rCkillzFakePopen.killsA <7 " " NN        V^ , , , , ,rEc |||_|dd|_|dd}|dd}|dd}|rtjdkrt dt|p |jp|p||_|@|j9t|jt|krtj d|d }|tj kr | |j |_nAt|t jt jfr||j ||d }|tjkr7|jr0|jJ| |j|j|_dS|tj kr!| |j|_dSt|t jt jfr||j|dSdS) z=Setup the FakePopen instance based on a real Popen arguments.universal_newlinesNtextencodingerrors)rz4__init__() got an unexpected keyword argument 'text'zlCannot disambiguate when both text and universal_newlines are supplied but different. Pass one or the other.rr) safe_copyr4rgr:r*r-r2boolrrmSubprocessErrorPIPErhr5rr'ioBufferedWriter TextIOWrapper_write_to_bufferSTDOUTr6r)r@rIr}r~rrrs rC configurezFakePopen.configures v.. $*JJ/CT$J$J!zz&$''::j$//Hd++  TC$v--RSS SdUd&?U8UvVV  )5T.//4::==,4  H%% Z_ $ $..t}==DKK !2B4D E F F 9  ! !$- 8 8 8H%% Z& & &4= &;***..t}dkJJDKKK z & &..t}==DKKK !2B4D E F F 9  ! !$- 8 8 8 8 8 9 9rEcd tj|S#t$rtdi|cYSwxYw)z_ Deepcopy can fail if the value is not serializable, fallback to shallow copy. NrK)copydeepcopyr2r\)rIs rCrzFakePopen.safe_copysH  "=(( ( " " ">>&>> ! ! ! "s //rfc|tj}t|tt fr/|t|j|}|r||z }t|tr|j s| }t|tr|j r| }|r2|j r+t|tr|dd}|rIt|tjs/|dkr||z}|||j }||St|tjr)|||n|||S)Nz  r)_convertr.linesepr'listtupler`mapr(rencoder)decoder:replacerUrVtellrX_get_empty_buffer feed_data_data_to_byteswrite)r@rPrfrs rCrhzFakePopen._prepare_buffers -- ++ edE] + + !LLT]E!:!:;;E !  eS ! ! #$. #LLNNE eU # # # #LLNNE  0T. 0:eS3I3I 0MM&$//E  1w(<== 1 !##$$&&%0E ?,,T^<z'FakePopen._to_bytes.. s3TTTt 4//BT[[]]TTTrErKr@ris rC _to_byteszFakePopen._to_bytes sTTtTTTTrEct|tjjr4t|tsdd|DSt|t r|S|sdS|S)N c3lK|]/}t|tr|n|V0dSrGr)ritems rC z+FakePopen._data_to_bytes..s=UUD%00CdkkmmUUUUUUrErE)r' collectionsabcr r)r`r(rrs rCrzFakePopen._data_to_bytess dKO4 5 5 ju>U>U ::UUPTUUU  dC  !;;==  3 rEbufferc0d|jvr'tttjnt t |ttfr#| fd|DdS| |dS)Nb)r~c,g|]}|dzS)rrK)rline data_types rCrz.FakePopen._write_to_buffer.."s'GGG$yy55GGGrE) moderr)r*getfilesystemencodingr(r'rr writelinesr)r@rirrs @rCrzFakePopen._write_to_buffersfk!! EC$=$?$? @ @ @ @  dT5M * * *   GGGG$GGG H H H H H LL4 ) ) ) ) )rEct|tr|jr|St|tr|js|S|SrG)r'r)rrr(r)r@rPs rCrzFakePopen._convert&sY eU # # " "<<>> ! eS ! ! "$. "<<>> ! rE wait_periodchtj||j|dSdSrG)timesleepr_finish_process)r@rs rC_waitzFakePopen._wait-s: ; ? "  " " " " " # "rEc|j|j|dS|jr%t|j|f|jpi|_n!t|j|jf|_|jdS)z2Run the user-defined callback or wait in a thread.N)targetr3rI)rr3)r=r>rrr?r7rstartrHs rC run_threadzFakePopen.run_thread2s   %$.*@  " " " " "~ V &>06B!!! !'dj@R?T U U U M   ! ! ! ! !rEcF|j|_|dSrG)r<r_finalize_streamsrHs rCrzFakePopen._finish_processAs$*      rEcn||j||jdSrG)_finalize_streamrrrHs rCrzFakePopen._finalize_streamsFs4 dk*** dk*****rEct|tjr|dS|r|ddSdS)Nr)r'rUrVfeed_eofseek)r@rds rCrzFakePopen._finalize_streamJsR fg2 3 3  OO        KKNNNNN  rE.c*t|jS)z/Get a tuple of signals received by the process.)rr;rHs rCreceived_signalszFakePopen.received_signalsPsT]###rE)NNrNNNNN)r%rNNrGr%N)>r1 __module__ __qualname____doc__rr r__annotations__rrintrrrr r)r( COMMAND_SEQrfloatrrAnyTyperDpropertyrIrLrrOrr rZrSrTr]rkrrrrvrzr staticmethodrrrrrUrVrhrr rrrrrrrrrrrrKrErCrr%s;;#FHV ####FHV ### $J $$$ItCLLL-1,0 $'+8<.2-1%N%N %*    %N * %N*%N%Nuo%N8$%N"$sG|"45%N"(+%N!*%N#w, %N %N%N%N%NNc7l!34X*d*d*t**** GK  " 4 * *t * * * *eCJ/E#u*4E##4#### " " " "!!!! ++++x'7D $%S/$$$$$$rErc :eZdZUdZeejed<eejed< ddedee de e e ffdZ ddee de fd Zd edejfd Zdd Zd eejdeejfdZddZddZddZddee ddfdZdS)AsyncFakePopenzClass to handle async processesrrNrPrQr%cfK|rC|d{V|||||d{V|jr|jd{Vnd|jr|jd{VndfSrG)_reopen_streamsrSr _finalizerreadrrYs rCrZzAsyncFakePopen.communicate[s  %&&(( ( ( ( ( ( ( (   u % % %  " " $ $ $nnW%%%%%%%%%(, =$+""$$ $ $ $ $ $ $ $(, =$+""$$ $ $ $ $ $ $ $  rEcK|r<|jr5||jkr*|xj|zc_tj|j|||d{V|j t j|jSrG)r=rmrnr3rrrrWras rCrzAsyncFakePopen.waitls  @t) @g8J.J.J   ' )  +DIw?? ?nnW%%%%%%%%% ? "0 0rEr$c(tjSrG)rUrV)r@r$s rCrz AsyncFakePopen._get_empty_bufferus#%%%rEcK||jd{V|_||jd{V|_dSrG)_reopen_streamrrrHs rCrzAsyncFakePopen._reopen_streamsxs\ // <<<<<<<<  // <<<<<<<< rErdcK|rF|d{V}|d}|||SdS)NF)rrr)r@rdri fresh_streams rCrzAsyncFakePopen._reopen_stream|sa  &&&&&&D11%88L  " "4 ( ( ( trEcdS)z=Async impl should not contain any thread based implementationNrKrHs rCrzAsyncFakePopen.run_threadsrEcR|j|j|dSdSdS)z&Check if process needs to be finished.N)r=r>rrHs rCevaluatezAsyncFakePopen.evaluates8   %$.*@  " " " " " & %*@*@rEczKtj}tj5}|jr9|jpi}t|jfi|}||||d{Vn.|j '|||j |j d{VddddS#1swxYwYdS)z2Run in executor the user-defined callback or wait.N) rUget_running_loop concurrentfuturesThreadPoolExecutorr>r?rrun_in_executorr=r)r@looppoolrIcbks rC_run_callback_in_executorz(AsyncFakePopen._run_callback_in_executors1'))   2 2 4 4 Q~ Q.4"dn7777**4d;;;;;;;;;;#/**4T=OPPPPPPPPP  Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q QsA/B00B47B4cK|jdS|/tj||d{Vn|d{V|j |j|_|dS)z5Run the user-defined callback or wait. Finish processN)rQ)rrUwait_forrr<rras rCrzAsyncFakePopen._finalizes ? & F  "4#A#A#C#CWUUU U U U U U U U U0022 2 2 2 2 2 2 2 ? "".DO      rErrGr)r1rrrr rUrVrrrr rrZrrrrrrrrrrrKrErCrrUs)) W) **** W) ****GK  " 4rsB!!  !!!!!! ,,,,,,<5!!Xc&6&?&?5e,-KK5e-?AU!UVWKm$m$m$m$m$m$m$m$` N!N!N!N!N!YN!N!N!N!N!rE