]L i{%UddlmZddlZddlZddlZddlZddlmZddlm Z ddl m Z m Z ddl mZmZddlmZmZmZdd lmZdd lmZdd lmZdd lmZmZdd lmZmZm Z ddl!m"Z"m#Z#ddl$m%Z%ejLdk\r ddl m'Z'm(Z(nddl)m'Z'm(Z(dZ*edZ+e'dZ,e"dZ-de.d<e"dZ/de.d<e"dZ0de.d<ddd d!dZ1d"dZ2d#dZ3e4d k(re3yy)$) annotationsN)deque)Callable)module_from_specspec_from_file_location)TypeVarcast) current_timeget_async_backendget_cancelled_exc_class)BrokenWorkerProcess) open_process)CapacityLimiter) CancelScope fail_after)ByteReceiveStreamByteSendStreamProcess)RunVarcheckpoint_if_cancelled)BufferedByteReceiveStream) ) TypeVarTupleUnpacki,T_RetvalPosArgsT_process_pool_workerszRunVar[set[Process]]_process_pool_idle_workersz$RunVar[deque[tuple[Process, float]]]_default_process_limiterzRunVar[CapacityLimiter]F) cancellablelimiterc Kdfd }td{tjd||ftj} tj t j }|xs t4d{|r|j\}jtt j"t%tt&j(t+}g} |r[||ddz t,krnH|j/\} }| j1j3| | j5| |r[t7d5| D]} | j9d{ dddnRj3|rt:j<d d t>g} tA| tBjDtBjD d{ tt j"t%tt&j(tGd 5jId d{} ddd dk7rtKd| tMt:jNddd}tjdt:jP|ftj}||d{jWt7| 5 ttX||d{vr|j5t+fcdddcdddd{S7$#t$r[tt}tjt j|tjY4wxYw7&77#1swY4xYw77{#1swY{xYw7 #tJtSf$rtT$r!}j1tKd|d}~wwxYw77#vr|j5t+fwwxYw#1swYnxYwdddd{7y#1d{7swYyxYww)a Call the given function with the given arguments in a worker process. If the ``cancellable`` option is enabled and the task waiting for its completion is cancelled, the worker process running it will be abruptly terminated using SIGKILL (or ``terminateProcess()`` on Windows). :param func: a callable :param args: positional arguments for the callable :param cancellable: ``True`` to allow cancellation of the operation while it's running :param limiter: capacity limiter to use to limit the total amount of processes running (if omitted, the default limiter is used) :return: an awaitable that yields the return value of the function. cK j|d{jddd{}|jd\}}|dvrtd|j t |d{}tj |}|dk(rt|t sJ||S77~78#t $r} j jtd5jd{7dddn #1swYnxYwn#t$rYnwxYwt|trt|d}~wwxYww) N 2 )RETURN EXCEPTION-Worker process returned unexpected response: Tshieldr*)send receive_untilsplit RuntimeErrorreceive_exactlyint BaseExceptiondiscardkillracloseProcessLookupError isinstancer rpickleloads) pickled_cmdresponsestatuslengthpickled_responseexcretvalbufferedprocessstdinworkerss V/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/anyio/to_process.pysend_raw_commandz"run_sync..send_raw_command=sD 3**[) ) )%33E2>>H%^^D1NFF66"CH<P&.%=%=c&k%JJ ./ \ !fm4 44LM9 *> K 3 OOG $   -+!..***+++%  #689)s2 3sEB6B0B6B2AB6;B4<B60E0B62B64B66 E ?ED-DDD DD DE D)&E(D))EE  ENrun)protocolrr Tr,z-uz-m)rEstdoutREADY r+__main____file__initz*Error during worker process initialization)r<bytesreturnobject)-rr:dumpsHIGHEST_PROTOCOLrgetr LookupErrorsetrr #setup_process_pool_exit_at_shutdowncurrent_default_process_limiterpop returncoder rrErrrKr WORKER_MAX_IDLE_TIMEpopleftr6removeappendrr7sys executable__name__r subprocessPIPErreceivergetattrmodulespathr r4addr)funcr"r#argsrHrequest idle_workers idle_sincenowkilled_processesprocess_to_killkilled_processcommandmessagemain_module_pathpickledrArCrDrErFs @@@@rGrun_syncry&s.B " ###llE4.9P9PQGI'++-1557 ;9;GCGC"."2"2"4 GZ!!)^W]];4*GNN; #n24 "\!_Q//2FF2>2F2F2H/OZ#((*NN?3$++O<#!-6*:6,3355566 NN7 #7:~~tT8$Q)AO1OOO A:OOO Q(P>*P?PPP>& Q/ Q1;P<Q1A N($Q1'N((Q1.N11N; 6 QOO OP0P  PQPQ1"P;;P>>Q Q Q1QQ1Q."Q% #Q.*Q1c tjS#t$r;tt j xsd}tj ||cYSwxYw)z Return the capacity limiter that is used by default to limit the number of worker processes. :return: a capacity limiter object )r!rWrXros cpu_countrY)r#s rGr[r[sM'++-- !",,."5A6 $$W-sAAActj}tj}ttj t_ttj dt_|j jd dx}} tj|j ^}}|dk(r |\}} ||}n|dk(r|\t_ }tjd=|rstjj|rT td|} | rE| jr9t!| } | jj#| | tjd< |'d} tj&|tj(} n&d} tj&|tj(} |j jd | t+| fz|j j| t-|t.r|x#t$r }|}Yd}~d}~wwxYw#t$r }|}Yd}~d}~wwxYw#t$$rYyt$r }|}Yd}~d}~wwxYw#t$r2}|}d} tj&|tj(} Yd}~d}~wwxYw) NwrNrIrQrO __mp_main__r*r)s%s %d )rbrErKopenr|devnullbufferwriter:loadr4rjriisfilerloaderr exec_moduleEOFErrorrUrVlenr9 SystemExit) rErKrB exceptionrurmrlrArwspecmainr>rxs rGprocess_workerrs IIE ZZFRZZ CIbjj#&CJ MM # !! (#[[6NGd %! d$!4[FF"-1**KK +#7G(H(6}FVWDKK#3D#9D KK33D96:CKK 3 A$% ,,y&2I2IJ" ,,vv/F/FG  J&#g,)??@ G$ i ,O_ %$ #I$)($' (1   I > AI!Fll3(?(?@G Ash!H*3G:?AHAI : HH  H H'H""H'* I 5I =II  J(JJrO) rlz&Callable[[Unpack[PosArgsT]], T_Retval]rmzUnpack[PosArgsT]r"boolr#zCapacityLimiter | NonerSr)rSr)rSNone)5 __future__rr|r:rerb collectionsrcollections.abcrimportlib.utilrrtypingrr _core._eventloopr r r _core._exceptionsr_core._subprocessesr_core._synchronizationr _core._tasksrrabcrrrlowlevelrrstreams.bufferedr version_inforrtyping_extensionsr^rrr__annotations__r r!ryr[rrdrGrs"  $D VV2-31;;57w++6 :   #.45L.M+MCI D@5;;U4V1V &* MC 0MC MCMC$ MC  MC`  8v zr