Ë
    Eü´jz&  ã                  óè  — U d dl mZ dZd dlZd dlZd dlZd dlZd dlZd dlm	Z	 d dl
mZ d dlmZ d dlmZmZ dd	lmZmZmZ dd
lmZ ddlmZ ddlmZ ddlmZmZ ddlmZm Z m!Z! ddl"m#Z#m$Z$ ddl%m&Z& ejN                  dk\  r	d dlm(Z(m)Z) nd dl*m(Z(m)Z) dZ+ ed«      Z, e(d«      Z- e#d«      Z.de/d<    e#d«      Z0de/d<    e#d«      Z1de/d<   dddœ	 	 	 	 	 	 	 	 	 d"d„Z2d#d„Z3d$d „Z4e5d!k(  r e4«        yy)%é    )Úannotations)Úcurrent_default_process_limiterÚprocess_workerÚrun_syncN)Údeque)ÚCallable)Ú
ModuleType)ÚTypeVarÚcasté   )Úcurrent_timeÚget_async_backendÚget_cancelled_exc_class)ÚBrokenWorkerProcess)Úopen_process)ÚCapacityLimiter)ÚCancelScopeÚ
fail_after)ÚByteReceiveStreamÚByteSendStreamÚProcess)ÚRunVarÚcheckpoint_if_cancelled)ÚBufferedByteReceiveStream)é   é   )ÚTypeVarTupleÚUnpacki,  ÚT_RetvalÚPosArgsTÚ_process_pool_workerszRunVar[set[Process]]Ú_process_pool_idle_workersz$RunVar[deque[tuple[Process, float]]]Ú_default_process_limiterzRunVar[CapacityLimiter]F)ÚcancellableÚlimiterc          	   ‡  óæ  ‡‡‡‡K  — dˆˆˆˆfd„}t        «       ƒ d{  –—†  t        j                  d| |ft        j                  ¬«      }	 t        j                  «       Št        j                  «       }|xs
 t        «       4 ƒd{  –—†  |�r|j                  «       \  Š}‰j                  €Ýt        t         ‰j"                  «      Št%        t        t&        ‰j(                  «      «      Št+        «       }g }	|r[||d   d   z
  t,        k  rnH|j/                  «       \  }
}|
j1                  «        ‰j3                  |
«       |	j5                  |
«       |rŒ[t7        d¬«      5  |	D ]  }|j9                  «       ƒ d{  –—†  Œ 	 ddd«       �nR‰j3                  ‰«       |r�Œt:        j<                  d	d
t>        g}tA        |tB        jD                  tB        jD                  ¬«      ƒ d{  –—† Š	 t        t         ‰j"                  «      Št%        t        t&        ‰j(                  «      «      ŠtG        d«      5  ‰jI                  d«      ƒ d{  –—† }ddd«       dk7  rtK        d|›�«      ‚tM        t:        jN                  d   dd«      }t        j                  dt:        jP                  |ft        j                  ¬«      } ||«      ƒ d{  –—†  ‰jW                  ‰«       t7        | ¬«      5  	 t        tX         ||«      ƒ d{  –—† «      ‰‰v r|j5                  ‰t+        «       f«       cddd«       cddd«      ƒd{  –—†  S 7 �Œ$# t        $ r[ t        «       Št        «       }t        j                  ‰«       t        j                  |«       t        «       j                  ‰«       Y �Œ4w xY w7 �Œ&7 �Œ7# 1 sw Y   �Œ4xY w7 �ŒÛ7 �Œ{# 1 sw Y   �Œ{xY w7 �Œ# tJ        tS        «       f$ r ‚ tT        $ r!}‰j1                  «        tK        d«      |‚d}~ww xY w7 �Œ7 ŒÛ# ‰‰v r|j5                  ‰t+        «       f«       w w xY w# 1 sw Y   nxY wddd«      ƒd{  –—†7   y# 1 ƒd{  –—†7  sw Y   yxY w­w)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)
    :raises NoEventLoopError: if no supported asynchronous event loop is running in the
        current thread
    :return: an awaitable that yields the return value of the function.

    c              “  ó¤  •K  — 	 ‰	j                  | «      ƒ d {  –—†  ‰j                  dd«      ƒ d {  –—† }|j                  d«      \  }}|dvrt        d|›�«      ‚‰j	                  t        |«      «      ƒ d {  –—† }t        j                   |«      }|dk(  rt        |t        «      sJ ‚|‚|S 7 Œ–7 Œ~7 Œ8# t        $ rŽ}‰
j                  ‰«       	 ‰j                  «        t        d¬«      5  ‰j                  «       ƒ d {  –—†7   d d d «       n# 1 sw Y   nxY wn# t        $ r Y nw xY wt        |t        «       «      r‚ t        |‚d }~ww xY w­w)	Nó   
é2   ó    )ó   RETURNó	   EXCEPTIONú-Worker process returned unexpected response: T©Úshieldr,   )ÚsendÚreceive_untilÚsplitÚRuntimeErrorÚreceive_exactlyÚintÚBaseExceptionÚdiscardÚkillr   ÚacloseÚProcessLookupErrorÚ
isinstancer   r   ÚpickleÚloads)Úpickled_cmdÚresponseÚstatusÚlengthÚpickled_responseÚexcÚretvalÚbufferedÚprocessÚstdinÚworkerss          €€€€úN/root/workspace/ytshorts/venv/lib/python3.12/site-packages/anyio/to_process.pyÚsend_raw_commandz"run_sync.<locals>.send_raw_commandF   sD  øè ø€ ð	3Ø—*‘*˜[Ó)×)Ð)Ø%×3Ñ3°E¸2Ó>×>ˆHØ%Ÿ^™^¨DÓ1‰NˆF�FØÐ6Ñ6Ü"ØCÀHÀ<ÐPóð ð &.×%=Ñ%=¼cÀ&»kÓ%J×JÐô —‘Ð.Ó/ˆØ�\Ò!Ü˜f¤mÔ4Ð4Ð4ØˆLàˆMð9 *øØ>øð  KùÜò 	3Ø�O‰O˜GÔ$ðØ—‘”Ü ¨Ô-ñ +Ø!Ÿ.™.Ó*×*Ñ*÷+÷ +ñ +üä%ò Ùðúô ˜#Ô6Ó8Ô9Øä)¨sÐ2ûð	3üs£   ƒE…B6 ™B0šB6 ³B2´AB6 Á;B4Á<B6 Â 0EÂ0B6 Â2B6 Â4B6 Â6	EÂ?EÃDÃ-DÄDÄDÄ	DÄD	ÄDÄEÄ	D)Ä&EÄ(D)Ä)EÅEÅENÚrun)Úprotocolr   r   Tr.   z-uz-m)rG   Ústdouté   é   ó   READY
r-   Ú__main__Ú__file__Úinitz*Error during worker process initialization)r>   ÚbytesÚreturnÚobject)-r   r<   ÚdumpsÚHIGHEST_PROTOCOLr!   Úgetr"   ÚLookupErrorÚsetr   r   Ú#setup_process_pool_exit_at_shutdownr   ÚpopÚ
returncoder   r   rG   r   r   rM   r   ÚWORKER_MAX_IDLE_TIMEÚpopleftr8   ÚremoveÚappendr   r9   ÚsysÚ
executableÚ__name__r   Ú
subprocessÚPIPEr   Úreceiver   ÚgetattrÚmodulesÚpathr   r6   Úaddr   )Úfuncr$   r%   ÚargsrJ   ÚrequestÚidle_workersÚ_idle_sinceÚnowÚkilled_processesÚprocess_to_killÚkilled_processÚcommandÚmessageÚmain_module_pathÚpickledrC   rE   rF   rG   rH   s                    @@@@rI   r   r   -   s  ûè ø€ ÷2ð ôB "Ó
#×#Ð#Ü�l‰l˜E 4¨Ð.¼×9PÑ9PÔQ€GðIÜ'×+Ñ+Ó-ˆÜ1×5Ñ5Ó7ˆð Ò;Ô9Ó;÷ GCñ GCò Ø#/×#3Ñ#3Ó#5Ñ ˆG�[Ø×!Ñ!Ð)Üœ^¨W¯]©]Ó;�Ü4ÜÔ*¨G¯N©NÓ;ó�ô #“n�Ø24Ð Ù"Ø˜\¨!™_¨QÑ/Ñ/Ô2FÒFØà3?×3GÑ3GÓ3IÑ0�O [Ø#×(Ñ(Ô*Ø—N‘N ?Ô3Ø$×+Ñ+¨OÔ<ò #ô !¨Ô-ñ 6Ø*:ò 6˜Ø,×3Ñ3Ó5×5Ñ5ñ6÷6ñ à�N‰N˜7Ô#ó7 ô: —~‘~ t¨T´8Ð<ˆGÜ(ØœzŸ™´z·±ô÷ ˆGðÜœ^¨W¯]©]Ó;�Ü4ÜÔ*¨G¯N©NÓ;ó�ô   “^ñ 8Ø$,×$4Ñ$4°QÓ$7×7�G÷8ð ˜jÒ(Ü-ØGÈÀ{ÐSóð ô $+¬3¯;©;°zÑ+BÀJÐPTÓ#UÐ Ü Ÿ,™,ØœSŸX™XÐ'7Ð8Ü#×4Ñ4ô�ñ ' wÓ/×/Ð/ð �K‰K˜Ô ä K Ô0ñ 	CðCÜœHÑ,<¸WÓ,E×&EÓFà˜gÑ%Ø ×'Ñ'¨´,³.Ð(AÔB÷	Cð 	C÷EGC÷ GCñ GCð $úô ò IÜ“%ˆÜ“wˆÜ×!Ñ! 'Ô*Ü"×&Ñ& |Ô4ÜÓ×?Ñ?À×HðIúðGCùð6 6ù÷6ñ 6úðùð 8ù÷8ñ 8úð 0úÜ'Ô)@Ó)BÐCò ØÜ ò Ø—‘”Ü)Ø@óàðûðúð 'FùðIGCùðL ˜gÑ%Ø ×'Ñ'¨´,³.Ð(AÕBð &ú÷		Cð 	Cú÷EGC÷ GC÷ GC÷ GCó GCüsj  †Q1�Mž,Q1Á(M Á3Q1ÂN+ÂQ1Â	CQÅQÅN1Å7N.
Å8N1Å?QÆAQÇ#N>Ç$QÇ)AOÈ1OÉOÉOÉA:OËOËOË
QË(P>Ë*PË?PÌ PÌP>Ì&	QÌ/Q1Ì;PÌ<Q1ÍA N(Î$Q1Î'N(Î(Q1Î.N1Î1N;	Î6	QÏOÏO	Ï		OÏPÏ0PÐPÐQÐPÐQ1Ð"P;Ð;P>Ð>Q	ÑQÑ
Q1ÑQÑQ1ÑQ.Ñ"Q%Ñ#Q.Ñ*Q1c                 óº   — 	 t         j                  «       S # t        $ r; t        t	        j
                  «       xs d«      } t         j                  | «       | cY S w xY w)z“
    Return the capacity limiter that is used by default to limit the number of worker
    processes.

    :return: a capacity limiter object

    é   )r#   rY   rZ   r   ÚosÚ	cpu_countr[   )r%   s    rI   r   r   ¿   sM   € ðÜ'×+Ñ+Ó-Ð-øÜò Ü!¤"§,¡,£.Ò"5°AÓ6ˆÜ ×$Ñ$ WÔ-ØŠðús   ‚ –AAÁAc                 óz  — t         j                  } t         j                  }t        t        j
                  «      t         _        t        t        j
                  d«      t         _        t        t        j
                  d«      t         _        |j                  j                  d«       	 d x}}	 t        j                  | j                  «      ^}}|dk(  r|\  }}	  ||Ž }n©|dk(  r¤|\  t         _        }t         j                  d= |rƒt        j                  j                  |«      rd	 t        d«      }	t!        j"                  |d¬«      }
|	j$                  j'                  |
«       |	xt         j                  d<   t         j                  d<   	 |�'d}t        j*                  |t        j,                  «      }n&d	}t        j*                  |t        j,                  «      }|j                  j                  d
|t/        |«      fz  «       |j                  j                  |«       t1        |t2        «      r|‚�Œˆ# t        $ r}|}Y d }~Œ¸d }~ww xY w# t        $ r}|}Y d }~ŒÐd }~ww xY w# t(        $ r Y y t        $ r}|}Y d }~Œòd }~ww xY w# t        $ r2}|}d}t        j*                  |t        j,                  «      }Y d }~Œàd }~ww xY w)NÚwrP   rK   rS   rQ   Ú__mp_main__)Úrun_namer,   r+   s   %s %d
)rc   rG   rM   Úopenr|   ÚdevnullÚstderrÚbufferÚwriter<   Úloadr6   rk   rj   Úisfiler	   ÚrunpyÚrun_pathÚ__dict__ÚupdateÚEOFErrorrW   rX   Úlenr;   Ú
SystemExit)rG   rM   rD   Ú	exceptionrv   rn   rm   rC   rx   ÚmainÚmain_contentr@   ry   s                rI   r   r   Ï   s<  € ô �I‰I€EÜ�Z‰Z€FÜ”R—Z‘ZÓ „C„IÜ”b—j‘j #Ó&„C„JÜ”b—j‘j #Ó&„C„Jà
‡M�M×Ñ˜
Ô#Ø
Ø!Ð!ˆ�ð	(Ü#Ÿ[™[¨¯©Ó6ˆNˆG�dð ˜%ÒØ!‘
��dð$Ù! 4˜[‘Fð ˜FÒ"à-1Ñ*””Ð*Ü—K‘K 
Ð+Ù#¬¯©¯©Ð7GÔ(Hð(Ü)¨-Ó8˜Ü',§~¡~Ø,°}ô(˜ð Ÿ™×,Ñ,¨\Ô:ØOSÐSœŸ™ JÑ/´#·+±+¸mÑ2Lð
	AØÐ$Ø%�Ü Ÿ,™, y´&×2IÑ2IÓJ‘à"�Ü Ÿ,™, v¬v×/FÑ/FÓG�ð 	�‰×Ñ˜J¨&´#°g³,Ð)?Ñ?Ô@Ø�‰×Ñ˜GÔ$ô �i¤Ô,ØˆOña øô %ò $Ø #•Iûð$ûô  )ò (Ø$'�	ûð(ûô3 ò 	ÙÜò 	Ø�Iûð	ûô@ ò 	AØˆIØ!ˆFÜ—l‘l 3¬×(?Ñ(?Ó@�Gûð	Aúsh   Â*!I ÃH- Ä"A#I ÆAI? È-	IÈ6H=È=IÉ	IÉIÉIÉ	I<É(I<É0I7É7I<É?	J:Ê(J5Ê5J:rQ   )
rm   z&Callable[[Unpack[PosArgsT]], T_Retval]rn   zUnpack[PosArgsT]r$   Úboolr%   zCapacityLimiter | NonerU   r   )rU   r   )rU   ÚNone)6Ú
__future__r   Ú__all__r|   r<   r‰   rf   rc   Úcollectionsr   Úcollections.abcr   Útypesr	   Útypingr
   r   Ú_core._eventloopr   r   r   Ú_core._exceptionsr   Ú_core._subprocessesr   Ú_core._synchronizationr   Ú_core._tasksr   r   Úabcr   r   r   Úlowlevelr   r   Ústreams.bufferedr   Úversion_infor   r   Útyping_extensionsr_   r   r    r!   Ú__annotations__r"   r#   r   r   r   re   © ó    rI   ú<module>r¨      s   ðÞ "ð€ó 
Û Û Û Û 
Ý Ý $Ý ß  ç VÑ VÝ 2Ý -Ý 3ß 1ß ;Ñ ;ß 5Ý 7à×Ñ�wÒß+Ð+ç6àÐ á�:Ó€Ù˜
Ó#€á.4Ð5LÓ.MÐ Ð+Ó MÙCIØ óDÐ Ð@ó ñ 5;Ð;UÓ4VÐ Ð1Ó Vð Ø&*ñ	OCØ
0ðOCàðOCð ðOCð $ð	OCð
 óOCódó :ðz ˆzÒÙÕð r§   